顧客が html/php コードを入力できる単純なテキスト フィールドがあります。
一部のサーバーではすべて正常に動作しますが、一部のサーバーでは入力するとすぐに次のようになります。
\
として保存されます\\
だから私はそのようなコードでそれを削除したかったのですが、うまくいきません:
$text = str_replace('\','',$text);
何か案は ?
顧客が html/php コードを入力できる単純なテキスト フィールドがあります。
一部のサーバーではすべて正常に動作しますが、一部のサーバーでは入力するとすぐに次のようになります。
\
として保存されます\\
だから私はそのようなコードでそれを削除したかったのですが、うまくいきません:
$text = str_replace('\','',$text);
何か案は ?
あなたはおそらく探しているでしょう:
$text = str_replace('\\\\','\\',$text);
\\
これは allを\
, or に置き換えます:
$text = str_replace('\\','',$text);
これにより、すべてが無に置き換えられます\
。
使用する必要がある理由\\
(および\\\\
2 つのスラッシュ) は\
、それ自体'\'
が終了引用符をエスケープして、文字列を不完全にするため、をエスケープするためです。\
したがって、 をエスケープして に変換する必要があります'\\'
。
サーバー間のこの違いの理由は、マジック クォートである可能性が高く、両方のサーバーでこの構成エントリの値が同じであることを確認することで、上記のようなコードを防ぐことができます。
そして、結局のところ、NBが指摘しているようにstripslashes()
、これを単に呼び出しに置き換えることができ、まったく同じ結果が得られます。
ASCII コードはいつでも使用できます。
$text="\ it's saved as \\";
$text = str_replace(chr(92),'',$text);
echo $text;
戻る:
として保存されます