如何更换 'ABC' 到 'A \ 0 \ 0℃'如何更换 'ABC' 到 'A 0 0℃'
以下代码是失败,并为输出 'AC'
<?php
$input = 'abc';
$pattern = '/b/i';
$replace = "\\0\\0";
$output = preg_replace($pattern, $replace, $input);
echo $output;
?>
如何更换 'ABC' 到 'A \ 0 \ 0℃'如何更换 'ABC' 到 'A 0 0℃'
以下代码是失败,并为输出 'AC'
<?php
$input = 'abc';
$pattern = '/b/i';
$replace = "\\0\\0";
$output = preg_replace($pattern, $replace, $input);
echo $output;
?>
你试过
$replace = '\\0\\0';
?
疑问时增加更多的反斜线:
$replace = '\\\\0\\\\0';
逃逸的第一级是针对PHP串分析器。单引号和双引号都将\\
解释为\
。下一个级别是正则表达式解析器。
所以PHP认为:
\\\\0\\\\0
它解释为:
\\0\\0
其正则表达式解析器解释为文本字符串:
\0\0
这里有一个 “整洁” 另一没有那些额外的斜线的方式
$string="abc";
$s = split("[bB]",$string);
print_r(implode('\0\0' , $s));
输出会给 “ABBC” 不是一个预期值 – brian 2010-02-02 03:30:40
您是否尝试过不同的'$ replace'字符串?这只是想要插入'\ 0 \ 0'的问题,还是在其他地方彻底崩溃了? – masher 2010-02-02 03:35:48
我已经试过了,它适用于其他字符串,但我需要用\ 0 \ 0替换,php给出奇怪的输出 – brian 2010-02-02 03:39:48