ホームページ  >  記事  >  バックエンド開発  >  ファイルのダウンロード時に bom ヘッダーを自動的に追加する PHP メソッドの例_PHP チュートリアル

ファイルのダウンロード時に bom ヘッダーを自動的に追加する PHP メソッドの例_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:41:25878ブラウズ

まず、bomとは何かを理解しましょう。 Windows でメモ帳などのプログラムを使用してテキスト ファイルを UTF-8 形式で保存すると、メモ帳はファイル ヘッダーの前にいくつかの非表示文字 (EF BB BF) を追加します。これはいわゆる BOM (バイト オーダー) です。マーク)。 )。
ファイルの冒頭にいくつかの非表示文字EF BB BFが含まれている限り、メモ帳に保存されたファイルに限定されません(16進数はxEFxBBxBFである必要があり、バイナリでファイルを編集するときに表示されます)。これは慣例のようなもので、システムはこれを認識すると、ファイルが UTF-8 でエンコードされていると認識します。

インターフェースが UTF-8 の場合、デフォルトで csv.excel などのファイルを強制的にダウンロードする必要があります (中国語の背景)。csv は GB でエンコードされていると見なされるため、BOM ヘッダーがある場合は、それを次のユーザーに提示できます。ユーザー ファイルが文字化けしている可能性があります。

BOM を追加するには?
出力ファイルの前に BOM ヘッダーを追加するだけです:

コードをコピーします コードは次のとおりです:
('有効期限: ' .gmdate('D, d M Y H:i:s', $_SERVER ['REQUEST_TIME'] + 10) . ' GMT');
header('Cache-Control: max-age=10') ;
//header('Content-Type: application/vnd.ms-excel; charset= utf-8');
header('Content-Type: text/csv; charset=utf-8');
header( "Content-Disposition:attachment; filename={$filename}");

// If結果にプロンプ​​ト メッセージがある場合は、出力の最初の行をプロンプト メッセージ テキストに変更します
$out = "xEFxBBxBF" // Bom ヘッダーを追加します。システムは自動的にデフォルトで UTF-8 エンコーディングを使用します
if (!empty($; extra['notice'])) {
$out .= "{$extra['notice']}rn";
}

/ / Output
foreach ($table as $row) {
$out .= implode (",", $row) . "rn";
}

/* if (mb_detect_encoding()($out) == 'UTF -8') {
$out = iconv("UTF-8//IGNORE) ", "GBK", $out);
} */
echo $out;




http://www.bkjia.com/PHPjc/684745.html

www.bkjia.com

http://www.bkjia.com/PHPjc/684745.html技術記事まず、bomとは何かを理解しましょう。 Windows でメモ帳などのプログラムを使用してテキスト ファイルを UTF-8 形式で保存すると、メモ帳はファイル ヘッダーの前にいくつかの非表示文字 (...) を追加します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。