2010-11-22 6 views

答えて

1

使用stripcslashes()またはその代わりstripslashes()。正規表現には正当な理由はなく、一方、組み込み関数よりも高価です。

+0

stripslashes()は必ずしも彼のケースでは機能しません(たぶん彼の文字列が台無しになっていて、\\と\がある場所にあります)が、stripcslashesは良いアイデアのように聞こえます。 –

+0

それは私が両方を投稿した理由です); * str_replace()*は別の解決策です。しかし、正規表現を他の静的文字列に置き換えるだけでは、正規表現は大きすぎます。 – KingCrunch

1

preg_replaceを使用する特別な理由はありますか?あなたはstr_replaceを使用する必要があります。

php > echo str_replace("\\\\", "\\", "I\\\\'ve had"); 
I\'ve had 

問題がにpreg_replaceで、あなたはPHPのインタプリタのため\をエスケープする必要があり、あなたは正規表現の通訳のために再び\を脱出しなければならないということです。だから、基本的に、あなたがこれを書く必要があるだろう:PHPの文字列で\を書くこと

php > echo preg_replace("/\\\\\\\\/", "\\", "I\\\\'ve had"); 
I\'ve had 

ので、あなたは\\を記述する必要がありますが、正規表現のインタプリタの両方をエスケープする必要があり、それが\\\\になります。これは1つの\なので、2回繰り返す必要があります。

関連する問題