似乎從PHP 5.1.1開始,雙引號字符串中的反斜槓也應該打印出來,所以即使您的代碼也適用於較新版本的PHP(source)。
可替換地,可以考慮使用單引號字符串文字與'\?'
和'\/'
使得反斜槓被視爲文字,而不是一個轉義序列的一部分(或者甚至'\\?'
和'\\/'
):
$my_regex = str_replace(array("?", "*", "/"), array('\?', "(.*)", '\/'), "/?hl=*&*$");
// $my_regex = str_replace(array("?", "*", "/"), array('\\?', "(.*)", '\\/'), "/?hl=*&*$");
echo $my_regex;
見PHP demo
見this PHP single-quoted string literal reference:
簡單指定一個字符串的方式是用單引號括起來(字符'
)。
要指定文字單引號,請使用反斜線(\
)將其轉義。 要指定文字反斜槓,請將其加倍(\\
)。 所有其他反斜槓實例將被視爲文字反斜槓:這意味着您可能會習慣的其他轉義序列(如\r
或\n
)將按照指定的字面輸出,而不是具有任何特殊含義。
$my_regex = str_replace(array("?", "*", "/"), array("\\?", "(.*)", "\\/"), "/?hl=*&*$");
:
否則,您可以在doubel引號字符串字面(demo)中使用雙反斜線