2011-07-15 11 views

答えて

2

あなたがにpreg_replaceの最初の引数は正規表現パターンであることを心に留めておく必要があり、あなたが渡すことはできませんそれへの任意の文字列。あなたが機能preg_quote

てみて、すべての正規表現文字をエスケープする必要が

まず:

$a = "abc/def"; 
$b = "abc/def/ghi/abc/def"; 

$pattern = preg_quote($a, '/'); // second argument allows us to escape delimiter chars, too 

$x = preg_replace("/$pattern/", '', $b, 1); 
+0

は助けてくれてありがとう。私のために働くことはありません。私の仕事は、str_replace "/"をpreg_replace ex。( ":")で動作する他の文字列に変換することです。 str_replaceを残りの結果を "/"に戻します。 – njai

+0

申し訳ありませんが、式を "/"区切り文字で囲むのを忘れていました。今修正されました。とにかく、変数を正規表現パターンとして扱うときは、preg_quoteを使うべきです。あなたがstr_replaceのようなすべての特殊文字を必要とする他の方法。()[] |等々。 preg_quoteはそれを行います。 – Hnatt

+0

はまだ動作しません。 – njai

関連する問題