Php 准备单报价问题。

Php 准备单报价问题。,php,regex,Php,Regex,我想用反斜杠单引号替换单引号。尝试了下面的php代码,当我执行回显时,它会正确显示,但当我执行错误日志时,它会显示额外的反斜杠。不确定我是否做错了什么,或者错误日志函数正在转义它 $cont="a'b"; // display a\'b echo preg_replace("/'/", "\\'" , $cont); // displays a\\'b in apache error log file error_log(preg_replace("/'/", "\\'" , $cont);

我想用反斜杠单引号替换单引号。尝试了下面的php代码,当我执行回显时,它会正确显示,但当我执行错误日志时,它会显示额外的反斜杠。不确定我是否做错了什么,或者错误日志函数正在转义它

$cont="a'b";
// display a\'b
echo preg_replace("/'/", "\\'" , $cont);
// displays a\\'b in apache error log file
error_log(preg_replace("/'/", "\\'" , $cont);

代码中有语法错误。调用
error\u log()
的最后一行缺少右括号:

完整代码:

$cont=“a'b”;
//显示一个
echo preg_替换(“/”/”、“\\”、$cont);
//在apache错误日志文件中显示\\'b

错误日志(preg\u replace(“/”/“,“\\”,$cont))
echo str\u replace(“'”、“\”、$cont)
addslashes()函数正则表达式引擎需要查看:
\\'
因此正则表达式字符串需要:
“/\\\'/”“
-因为字符串插值会吃第一个反斜杠。到目前为止,这些注释都不起作用。此外,我认为PHP不会有帮助,因为我认为它与服务器有关,在我的例子中是Apache2.4。我注意到,即使使用ASCII码
error_log(chr(92))在日志中以两个反斜杠\\结尾。@JeffPuckettII如果有问题,应该是特定于PHP的。它与服务器完全无关。