Wysyłając pliki binarne, zawsze należy zastanowić się, jakie nagłówki HTTP wybrać. W przypadku wysyłania pliku CSV (niemal idealny format dla prostych tabel tekstowych, które mogą być przetwarzane przez Excel) przydatny jest Content-Type: application/csv, w kodowaniu UTF-8.
Jednak w niektórych wersjach Excela występuje problem z kodowaniem UTF-8. Aby mieć pewność, że wykryte zostanie prawidłowe kodowanie, musimy wstawić UTF-8 BOM, czyli specjalny znak xEF, który mówi klientowi, że jest to UTF-8, ponieważ nie występuje w żadnym innym kodowaniu.
Dlatego wyślij nagłówki w następujący sposób:
header('Content-Type: application/csv; charset=utf-8');header('Content-Disposition: attachment; filename=.' . date('d-m-y') . '_file.csv');header('Pragma: no-cache');echo "\...";
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:
Nejlepsi tipy a triky o PHP do Vaseho e-mailu. Clanky a novinky nejen ze sveta PHP a programovani.