2012-03-29 10 views
0

私のPHPアプリケーションは、addslashes()で多くの場所で引用符にバックスラッシュを追加しています。残念なことに、この追加によって次のような出力が生成されました。バックスラッシュの繰り返しを中止するにはどうすればよいですか?

私のページを更新するたびに、この文字列のバックスラッシュの数が増えます。

はない
ドン\ 'tは
ドン\\' トン
ドン\\\\ 'トン
ドン\\\\\\\\' トン

などを行います。

これらの余分なバックスラッシュをすべて削除する関数を書きたいと思います。私は試してみました

str_replace($text, "\\\\", ""); 

私は利用できません。

+1

コードを投稿すると便利です。それは魔法の引用符の問題、またはあなたのaddslashesを利用する方法、または...コードは、常にあなたのコーディングの質問に特定の助けを得るための最良の方法です。しかし、私はあなたの出力のために単なるストライプスラッシュを使用して、または推測されたデータベース提出の直前にaddslashesを使用することに傾いています。 – Blake

+2

私は賢明な解決策はaddslashes()をまったく呼び出さないことだと思います。代わりに、必要なときに手動でスラッシュを追加するだけです。 – Kristian

答えて

1

あなただけ使用することができます:あなたの実際の値が合法的\\を含める発生した場合

stripslashes($text); 
1
$text=preg_replace('/\134+/',"\134",$text); 
1

をどうなりますか?たとえば、あなたのコンテンツがWindowsスタイルの共有参照 - \\192.168.1.1\fooを参照していたとします。あなたが盲目的に二重スラッシュを取り除くならば、というものがそこにあることを意味するというものを取り除くでしょう。

「正しい」答えは、本当に必要のないものにスラッシュを追加しないことです。与えられた値が既にエスケープされているかどうか(すべての値がどこから来ているのか、どの値が使用されているのかを制御しているかどうか)を知り、必要なときにスラッシュを追加するだけです。

関連する問題