php で BOM ヘッダーをクリアする方法: 1. "trim($result, "\xEF\xBB\xBF");" を使用して BOM ヘッダーを削除します; 2. "@iconv("GBK ", " UTF-8//IGNORE", $result);" メソッドを使用して BOM ヘッダーを削除します。
この記事の動作環境: Windows7 システム、PHP7.1 バージョン、Dell G3 コンピューター
BOM のクリア方法header in php?
BOM ヘッダーを削除する PHP メソッド
BOM ヘッダーは、編集者に「UTF8 でエンコードされている」ことを伝えるために UTF-8 です。そのエンコードは\xEF\xBB\xBF
ですが、PHP は設計の開始時に BOM ヘッダーの問題を考慮していなかったため、エンコードおよびデコード中に問題が発生する傾向があります。
たとえば、今日発生した問題、json_decode では、デコードされた文字列に BOM ヘッダーがある場合、json_decode は解析に失敗し、NULL を返します。 (BOM ヘッダーを自動的に検出して削除しないのはなぜでしょうか...ちょっとした不満)
これを削除するために 2 つの方法を試しました:
$result = trim($result, "\xEF\xBB\xBF"); print_r(json_decode($result, true)); exit;
もう 1 つは、より微妙なものです:
$result = @iconv("UTF-8", "GBK//IGNORE", $result); $result = @iconv("GBK", "UTF-8//IGNORE", $result); print_r(json_decode($result, true)); exit;
推奨される学習: 「PHP ビデオ チュートリアル 」
以上がPHPでBOMヘッダーをクリアする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。