如何更換 '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