如何将'abc'替换为'a \ 0 \ 0c'
以下代码失败并输出'ac'
<?php
$input = 'abc';
$pattern = '/b/i';
$replace = "\\0\\0";
$output = preg_replace($pattern, $replace, $input);
echo $output;
?>
答案 0 :(得分:5)
如有疑问,请添加更多反斜杠:
$replace = '\\\\0\\\\0';
第一级转义是PHP字符串解析器。单引号和双引号都将\\
解释为\
。下一级是正则表达式解析器。
所以PHP看到了:
\\\\0\\\\0
它解释为:
\\0\\0
正则表达式解析器将其解释为文字字符串:
\0\0
答案 1 :(得分:0)
你试过吗
$replace = '\\0\\0';
答案 2 :(得分:0)
这里是一个“整洁者”另一种没有那些额外斜线的方式
$string="abc";
$s = split("[bB]",$string);
print_r( implode('\0\0' , $s) );