1

顧客が html/php コードを入力できる単純なテキスト フィールドがあります。

一部のサーバーではすべて正常に動作しますが、一部のサーバーでは入力するとすぐに次のようになります。

\として保存されます\\

だから私はそのようなコードでそれを削除したかったのですが、うまくいきません:

$text = str_replace('\','',$text);

何か案は ?

4

2 に答える 2

1

あなたはおそらく探しているでしょう:

$text = str_replace('\\\\','\\',$text);

\\これは allを\, or に置き換えます:

$text = str_replace('\\','',$text);

これにより、すべてが無に置き換えられます\

使用する必要がある理由\\(および\\\\2 つのスラッシュ) は\、それ自体'\'が終了引用符をエスケープして、文字列を不完全にするため、をエスケープするためです。\したがって、 をエスケープして に変換する必要があります'\\'

サーバー間のこの違いの理由は、マジック クォートである可能性が高く、両方のサーバーでこの構成エントリの値が同じであることを確認することで、上記のようなコードを防ぐことができます。

そして、結局のところ、NBが指摘しているようにstripslashes()、これを単に呼び出しに置き換えることができ、まったく同じ結果が得られます。

于 2013-06-21T15:25:13.300 に答える
0

ASCII コードはいつでも使用できます。

 $text="\ it's saved as \\";
  $text = str_replace(chr(92),'',$text);
  echo $text;

戻る:

として保存されます

于 2013-06-21T15:30:36.443 に答える