2011-10-27 31 views
3

JSON.stringifyを使用してJSON文字列をGET経由でPHPスクリプトに渡すJS関数があります。json_decodeはlocalhostでは動作しますが、Webサーバでは動作しません

JSONは私のlocalhost上でPHPのデコードを行うだけですが、私のウェブサーバに移動するとすぐに動作を停止します。さらに分析したところ、私のWebサーバーはJSON文字列に\(スラッシュ)を追加していました。JSONLint.comによれば、スラッシュ付きの文字列は無効なJSONです。

JSON私のウェブサーバ上では次のように現れます:

{\"Product\":\"Walnut Pastry\",\"Size\":\"Slice\",\"Quantity\":\"2\",\"Price\":0} 

なぜこれが私のウェブサーバ上で起こるんし、私は、文字列をエスケープするために何ができるのでしょうか? 私はjson_decode(str_replace('/','',$_GET['json']),true);を試しましたが、どちらもうまくいきませんでした。

+0

"/"は "\"とは異なります。または単にストリングスラッシュを使用してください。 http://php.net/manual/en/function.stripslashes.php – xdazz

+0

これはお勧めできません。マジック引用符をオフにしたサーバで同じコードを実行すると、望ましくない効果があります。 – Pauly

答えて

5

あなたには魔法の言葉が載っているようです。 Read Magic Quotes

また、マニュアルページの警告に注意して、それをオフにする必要があります。

+0

ありがとうございます。私はそれをオフにします – xbonez

関連する問題