【发布时间】:2016-10-05 23:31:28
【问题描述】:
我想用反斜杠单引号替换单引号。当我执行 echo 时尝试了下面的 php 代码,它正确显示,但是当我执行 error_log 时,它显示一个额外的反斜杠。不确定我是否做错了什么或 error_log 函数正在逃避它。
$cont="a'b";
// display a\'b
echo preg_replace("/'/", "\\'" , $cont);
// displays a\\'b in apache error log file
error_log(preg_replace("/'/", "\\'" , $cont);
【问题讨论】:
-
echo str_replace("'", "\'", $cont); -
addslashes() 函数
-
正则表达式引擎需要看到:
\\'所以正则表达式字符串需要是:"/\\\\'/""- 因为字符串插值会吃掉第一个反斜杠。 -
到目前为止,这些 cmets 都不起作用。此外,我认为 PHP 不会有帮助,因为我认为这与服务器有关,在我的例子中是 Apache 2.4。我注意到即使使用 ASCII 码
error_log(chr(92));最终在日志中有两个反斜杠 \\。 -
@JeffPuckettII 如果有问题,应该是特定于 PHP 的。它根本与服务器无关。