顧客が 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;
戻る:
として保存されます