一位顧客報一個錯誤,我就追蹤到這個代碼,但我無法弄清楚什麼是錯的:PHP的preg_match返回null
$source = "This is a test.\n\n-- a <span style='color:red'>red word</span>!\n\n- a red word!\n\n";
//$find = "- a red word!"; // This one works!
$find = "- a <span style='color:red'>red word</span>!"; // This one doesn't...
$replace = "• a <span style='color:red'>red word</span>!";
$pattern = '/^' . preg_quote($find) . '$/';
$results = preg_replace($pattern, $replace, $source);
die ("Results: " . serialize($results));
我已經包含的樣本$find
工作與$find
不起作用。任何想法爲什麼沒有註釋$find
不起作用?
(注:我沒有真正試圖解析HTML和搜索是純粹的樣品,所以我不需要在方法更正),因爲什麼
請正確使用['preg_quote()'](http://php.net/manual/en/function.preg-quote.php),您必須**定義您正在使用的分隔符,否則默認值是'NULL',所以試試'$ pattern ='/ ^'。 preg_quote($ find,'/')。 '$ /';'。另外,如果您打開了錯誤報告或檢查了日誌,您應該注意到了一些事情。 – HamZa
爲什麼不使用'str_replace'? –