我有以下代码在源字符串的末尾添加字符串" QWE":
<?php
echo preg_replace('/$/','QWE',"<p>123</p>
<p>456</p>\r\n"
)
?>
结果是:
# php p.php
<p>123</p>
QWE456</p>
QWE
结果必须如下:
# php p.php
<p>123</p>
456</p>
QWE
可能有问题?
更新
感谢大家的建议。
经过一些测试后,我找到了临时解决方案。如果我将双引号替换为单引号,结果就可以了。
但我无法理解为什么双引号字符串表现得如此奇怪。
答案 0 :(得分:3)
而不是$
使用\z
来表示多行输入数据中的输入结束:
echo preg_replace('/\z/','QWE','<p>123</p>
<p>456</p>'."\r\n"
);
<p>123</p>
<p>456</p>
QWE