Відправлення файлу CSV

18. 12. 2022

При відправці бінарних файлів завжди думайте про те, які HTTP-заголовки вибирати. У разі надсилання файлу у форматі CSV (майже ідеальний формат для простих текстових таблиць, які можуть бути оброблені Excel), бажано вказати Content-Type: application/csv, у кодуванні UTF-8.

Oднак, в деяких версіях Excel існує проблема з кодуванням UTF-8. Для того, щоб переконатися, що визначається правильне кодування, нам потрібно вставити UTF-8 BOM, який являє собою спеціальний символ xEF\xBB\xBF, який повідомляє клієнту, що це UTF-8, так як в інших кодуваннях його не існує.

Тому надсилайте заголовки наступним чином:

php
header('Content-Type: application/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=' . date('d-m-y') . '_file.csv');
header('Прагма: без кешу');
echo "\xEF\xBB\xBF";
Jan Barášek
Jan BarášekVíce o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Newsletter

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