2014-04-12 85 views
0

我'試圖傳遞一個字符串php如何爲preg_match轉義字符串?

preg_replace('/'.preg_quote($my_str).'/i', '', $string); 

,但我得到一個錯誤

preg_replace(): Unknown modifier '\' 

有沒有其他的解決方案,以逃避那些反斜槓?

+2

你要通過正則表達式的分隔符(/)作爲'preg_quote' – hindmost

+0

什麼是正第二個參數你傳遞給'preg_quote'的表達式?您可能需要添加分隔符。 –

+0

你能告訴我們$ my_str的值嗎? – edisonthk

回答

0

傳遞的分隔符到preg_quote

echo preg_replace('/'.preg_quote("$my_str",'~').'/i', '',$string); 
              ^
0

你$ my_str的子第二個參數包含在它/性格,你正在使用正則表達式作爲分隔符。所以你有兩種解決方案,

一,把分隔符/替換成其他變量中不包含的任何東西。例如~

preg_replace('~'.preg_quote($my_str).'~i', '', $string); 
      ^     ^

二的解決方案,與\/$my_str全部更換/preg_quote

$my_str = str_replace('/', '\/', preg_quote($my_str)); 
$some_str = preg_replace('/'.$my_str.'/i', '', $string);