-1

我想chr(10)
PHP 替换

<!CDATA[[Text
test
test]]>

但我在正则表达式方面很差。

4

2 回答 2

0

为什么使用正则表达式?

$final = str_replace( chr(10), '&#xA;', $cdata );
于 2012-09-14T22:42:00.410 回答
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);

ps你可能不用preg_replace_callback就可以做到,但它看起来比将所有逻辑都放入preg_replace更好......

于 2012-09-14T23:01:07.493 回答