用PHP替换CDATA中的内容

时间:2012-09-14 22:29:58

标签: php regex cdata

我想用{/ 1>}替换chr(10)

中的PHP




但我在REGEX中很穷。

2 个答案:

答案 0 :(得分:0)

为什么要使用RegEx?

$final = str_replace( chr(10), '
', $cdata );

答案 1 :(得分:0)

$xml = "cc\n<!CDATA[[Text\ntest\ntest]]>\naa\nbb\n";
$callback = function($m) {
    return '<!CDATA[[' . preg_replace("~" . chr(10) . "~s", '&#xA;', $m[1]) . ']]>';
};
echo preg_replace_callback('~<!CDATA\[\[(.+?)\]\]>~s', $callback, $xml);

P.S。你可以在没有preg_replace_callback的情况下做到这一点,但它看起来比将所有逻辑放入preg_replace更好......