PHP Manual
/
Traitement des données

Envoi d'un fichier CSV

18. 12. 2022

Lorsque vous envoyez des fichiers binaires, pensez toujours aux en-têtes HTTP à choisir. Dans le cas de l'envoi d'un fichier CSV (format presque idéal pour les tableaux de texte simples, qui peuvent être traités par Excel), `Content-Type : application/csv`, dans le codage `UTF-8` est utile.

Cependant, dans certaines versions d'Excel, il y a un problème avec l'encodage UTF-8. Pour s'assurer que le bon encodage est détecté, nous devons insérer le UTF-8 BOM, qui est un caractère spécial xEF\xBB\xBF qui indique au client qu'il s'agit d'UTF-8, puisqu'il n'existe dans aucun autre encodage.

Par conséquent, envoyez les en-têtes comme suit :

header('Content-Type : application/csv ; charset=utf-8');
header('Content-Disposition : attachment ; filename=.' . date('d-m-y') . '_file.csv');
header('Pragma : no-cache');
echo "\xEF\xBB\xBF";

Jan Barášek   Ví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:

Související články

1.
4.
Status:
All systems normal.
2024