ホームページ > バックエンド開発 > PHPチュートリアル > json文字列が解析できない問題

json文字列が解析できない問題

WBOY
リリース: 2016-06-20 12:42:58
オリジナル
1459 人が閲覧しました

PHP インターフェースを作成し、返されるデータは json 形式 (データ形式は OK、エンコードは utf8 形式) ですが、呼び出し時に json 形式のデータを解析できませんが、返されたデータをコピーします。文字列に変換 文字列を解析できます。長い間検索した結果、出力されたソースコードの前に空白があることがわかりましたが、この空白はトリミングしてスペースを削除しても解決できません。リクエストインターフェイスをシミュレートするために、 を削除する方法を使用しました。 BOM ヘッダー Trim($result, "xEFxBBxBF"); がまだ解析できません。


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

それは、json_encode 出力を適切に記述していないためです。ステートメント ヘッダー('Content-type. :application/json;charset=utf-8');

BOM ヘッダーの影響であるはずです
$result =rim($result, "xEFxBBxBF");
を削除するだけです$result
の BOM は削除されますが、php プログラム ファイルの BOM は削除されません

新しいプログラムを作成します

echo bin2hex(file_get_contents('http://yourhost/api.php'));
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
実行後、BOM があるかどうかを確認できます

BOM ヘッダーの影響である必要があります
$result = trim($result, "xEFxBBxBF" ; BOM



は BOM ヘッダーの影響である必要があります
$result = trim($result, "xEFxBBxBF");

echo bin2hex(file_get_contents('http://yourhost/api.php'));
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
$result の BOM

を削除するだけで、php プログラム ファイルの BOM は削除されていません

新しいものを作成しますプログラム


j 実行後、BOM があるかどうかを確認できます。



BOM ヘッダーである必要があります。
$result = Trim($result) の影響, "xEFxBBxBF");

echo bin2hex(file_get_contents('http://yourhost/api.php'));
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
$result の BOM のみを削除します

PHP プログラム ファイルの BOM は削除しません

プログラムの後に新しい BOM を作成します


jが実行されると、BOM があるかどうかを確認できます


フロントエンドには次の出力があります
2020efbbbf7b22737461747573223a302c226d657373616765223a225c7539613 8635c75386 26

echo bin2hex(file_get_contents('http://yourhost/api.php'));
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
どうやって削除すればいいですか?ファイル内の bom ヘッダーについて


前の 2020efbbbf
2020 はスペースが 2 つあることを意味します
efbbbf は bom だけではありませんか?

これは BOM ヘッダーの影響であるはずです

$result = trim($result, "xEFxBBxBF");
$result の BOM を削除するだけです
プログラムファイルの php BOM を削除しない

新しいプログラムを作成する


j 実行後、BOM があるかどうかを確認できます
モデレータさん、熱心なご回答ありがとうございました。問題は最終的に解決されました。BOM ヘッダーを含むファイルを見つけて再編集しました。json を解析できます。

notepad++ でファイルを BOM フリー形式に変換できます。 > このログを読むことができます: http://my .oschina.net/rain21/blog/384549

echo bin2hex(file_get_contents('http://yourhost/api.php'));
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
notepad++ はファイルを BOM フリー形式に変換できます

これを読むことができますログ: http://my.oschina.net /rain21/blog/384549

ご回答ありがとうございます、試してみます

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート