• ベストアンサー

"の前に\がついてしまいます

毎度お世話になります。 テキストエリアに自由に入力させて、その内容をファイルに保存させたいのですが、例えばaタグ <a href="hoge.html"> と入力したデータが、ファイルに保存されると <a href=\"hoge.html\"> となってしまいます。 テキストエリアに入力したデータは、POSTで渡され、改行位置にnl2brで改行記号をつけて一度配列に入れて各配列をtrimで改行を削除し、もう一度文字列に戻してファイルに書き込んでいます。 (入力したデータを1行で保存したいため) このやりかたもどうかと思うのですが、"前の\について回避方法がありましたら教えてください。 よろしくお願いいたします。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

多分、(php.iniでの設定)magic_quotes_gpcのオプションの効果だと思います。 http://jp2.php.net/manual/ja/ref.info.php#ini.magic-quotes-gpc stripslashes関数を使って取り除いてもいいと思います http://jp2.php.net/manual/ja/function.stripslashes.php

umioyo
質問者

お礼

どうもありがとうございました。 納得できました。 回避策もありがとうございます。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

POSTされたデータがどのようにエスケープされるかは よく調べてみてください。 とりあえず、エスケープを防ぐことはできませんので 受け取ったデータを変換すればよいでしょう。 $_POST["data"]=str_replace("\\\"","\"",$_POST["data"]);

umioyo
質問者

お礼

ありがとうございます。 やはり毎度取り除かないとダメですか・・・ 何か設定とかそういう問題ではないのでしょうか。

関連するQ&A