ホームページ >バックエンド開発 >PHPチュートリアル >json_decode の後は空の json データが返されます

json_decode の後は空の json データが返されます

WBOY
WBOYオリジナル
2016-06-23 14:39:441402ブラウズ

http://zhidao.baidu.com/link?url=kEYMQrLi41ZyC3Yo5XoN_QEbUentL2yVvcUg3seg_ZVksV2w5KBMudlQomrizXZiEoe3Uz0xtp7Moj9nRLBLNK

私が遭遇した問題は彼の

アプリのインターフェースに似ています、その後、PHP は json 文字列を受け入れて返します (検証後の形式は正しいです)。 : 返されたデータは次のとおりです 実際の文字は一致しません (さらに 3 文字)、
次に、php 側を json ヘッダーに変更しましたが、それでも機能しませんでした
アプリは次のメッセージを返しました:
string(121) "?{"errorCode" :"0","errorMsg":"成功","re​​sponseData":{"uid":"36","sender_uid":"37","error":"0","error_msg":"成功"} }"
json_decode ->NULL
ファイル内にコピーします:
string(118) "{"errorCode":"0","errorMsg":"success","re​​sponseData":{"uid":"36" ,"sender_uid":"37","error ":"0","error_msg":"success"}}"


ディスカッションへの返信(解決策)

BOMヘッダーの理由

の3つ余分な文字は BOM ヘッダーです。削除するだけです
たとえば、受信した文字は $s にあり、
$a = json_decode(substr($s, 3));

3 つの余分な文字は BOM ヘッダーです。それを削除します
たとえば、受け取ったものは $s にあります。 次に、
$a = json_decode(substr($s, 3));
明日会社に行って試してみます

余分な 3 文字はBOM ヘッダー、それを削除するだけです
例えば、受信したものが $s にある場合、
$a = json_decode(substr($s, 3));

Baidu プッシュを使用して、数時間探したことが判明しました。 Baidu のファイルに BOM ヘッダーがあることに気づきましたが、これは非常に苦痛でした。 ! !ありがとうございます

おそらく BOM ヘッダーのせいです
わかりました、ありがとう


JSON フォーマット ツール、JSON 検証ツール、http://www.sojson.com をお勧めします

広告なしで高速読み込みツール

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。