0 レビュー
1 回答
json-PHPjson_decodeバックスラッシュ
サーバーでJSON文字列を受信しています。これは、json_decodeを介して変換する必要があります。この文字列には何でも含めることができます。再現が難しい問題に続いて、テストとして次のことを試しました。
$data = '{"client":"Test @#€%&-+()\/\\_*\""}';
$data = json_decode($data);
var_dump($data); die;
これはNULLを返します。 \\を削除すると、コードは機能します。これをGoogleDevToolsで試しましたが、Javascript内で機能します。 json_decodeで機能させるにはどうすればよいですか?
ありがとう!
わからない
0
レビュー
答え :
解決策:
ここでnullで発生している問題は、二重エスケープが原因で発生します。1つはPHP文字列用で、もう1つは後で解釈されるjson用です。だから例えばいくつかの\
を追加すると、次のように動作します。
php> $ data ='{"client": "Test @#%&-+()\ \ / \ {-code- 1} \ \ _ * \ ""}';
var_dump(json_decode($ data));
object(stdClass)#1(1){
["クライアント"]=>
string(18) "テスト@#%&-+()/ \ _ *""
}
テストjsonをファイルに入れて読み取ることもできます。そうすれば、PHP文字列として何かをエスケープすることを心配する必要はありません。
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。