我想chr(10)
用

PHP 替换
<!CDATA[[Text
test
test]]>
但我在正则表达式方面很差。
为什么使用正则表达式?
$final = str_replace( chr(10), '
', $cdata );
$xml = "cc\n<!CDATA[[Text\ntest\ntest]]>\naa\nbb\n";
$callback = function($m) {
return '<!CDATA[[' . preg_replace("~" . chr(10) . "~s", '
', $m[1]) . ']]>';
};
echo preg_replace_callback('~<!CDATA\[\[(.+?)\]\]>~s', $callback, $xml);
ps你可能不用preg_replace_callback就可以做到,但它看起来比将所有逻辑都放入preg_replace更好......