• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エスケープ文字にstr_replaceが効かない)

エスケープ文字にstr_replaceが効かない

このQ&Aのポイント
  • フォームで送信された文字列の一部のエスケープ文字が含まれている場合、str_replace関数を使って半角記号を全角記号に置換する方法について教えてください。
  • 現在、エスケープ文字の一部が正しく置換されていません。特に、"(ダブルクォート)は全角ダブルクォート、&(半角アンド)は全角アンドと出力させたいです。
  • ソースコードのstr_replace関数の記述に誤りがあるため、希望通りに文字列置換が行われていません。正しい置換方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

そういうソースになっているとしか言えません。最初に下記の処理がありますから。 >$system = htmlspecialchars($_POST["system"], ENT_QUOTES); ENT_QUOTESは、通常の処理に加えて単引用符の処理も行う・・という意味なので、アンパサンドや二重引用符は処理(エスケープ)されます。   http://jp2.php.net/manual/ja/function.htmlspecialchars.php

HYSTER
質問者

お礼

なるほど。。 $system = str_replace('&', '&', $system); $system = str_replace('\"', '”', $system); こう書かなければならなかったのですね! 大変参考になりました。ありがとうございます☆

関連するQ&A