CSVファイルを送信する

バイナリファイルを送信する場合、どのようなHTTPヘッダを選択するかを常に考えておく必要があります。CSV ファイル (Excelで処理できるシンプルなテキストテーブルとしてほぼ理想的なフォーマット) を送る場合、 Content-Type: application/csv, UTF-8 エンコーディングが有効です。

しかし、Excelの一部のバージョンでは、UTF-8のエンコードに問題があります。正しいエンコーディングを検出するために、UTF-8 BOMを挿入する必要があります。これは特殊文字 xEFxBBxBF で、他のエンコーディングでは存在しないため、クライアントにUTF-8であることを知らせます。

したがって、以下のようにヘッダを送信します。

php
header('Content-Type: application/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=。' . date('エムワイ') . '_file.csv');
header('プラグマ:no-cache');
echo "\xEFxBBxBF";

Newsletter

Nejlepsi tipy a triky o PHP do Vaseho e-mailu. Clanky a novinky nejen ze sveta PHP a programovani.