Maison > Article > développement back-end > Que faire si php génère des caractères csv tronqués
php génère des caractères csv tronqués car le fichier de sortie au format csv n'a pas de nomenclature. La solution est d'utiliser la nomenclature pour indiquer l'encodage des caractères, avec un code tel que "header("Content-type:text. /csv;charset=gb2312"); ".
L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3
Résolution des caractères chinois tronqués dans Fichier csv de sortie PHP
Les fichiers de téléchargement PHP utilisent souvent une sortie de flux d'octets. Par conséquent, le code couramment utilisé pour télécharger le format csv est le suivant :
header("Content-Type: application/force-download"); header("Content-type:text/csv;charset=gb2312"); header("Content-Disposition:filename=打开邮件导出".date("YmdHis").".csv"); echo "收件人邮箱,收件人姓名,发送时间\r"; ob_end_flush(); foreach($list as $rs) { echo $rs->toemail.",".$rs->name.",".date('Y-m-d H:i:s',$rs->addtime)."\r"; flush(); } exit;
Il est normal que le fichier csv téléchargé de cette manière soit ouvert avec un éditeur tel que Notepad ou sublime text, mais il sera tronqué lorsqu'il est ouvert avec Excel, car le fichier de sortie au format csv est Il n'y a pas de nomenclature. Il existe de nombreuses opinions sur la nomenclature. Dans des circonstances normales, la nomenclature doit être supprimée en PHP, mais les fichiers csv doivent utiliser la nomenclature pour indiquer l'encodage des caractères.
La solution est la suivante :
header("Content-Type: application/force-download"); header("Content-type:text/csv;charset=gb2312"); header("Content-Disposition:filename=打开邮件导出".date("YmdHis").".csv"); echo chr(0xEF).chr(0xBB).chr(0xBF); echo "收件人邮箱,收件人姓名,发送时间\r"; ob_end_flush(); foreach($list as $rs) { echo $rs->toemail.",".$rs->name.",".date('Y-m-d H:i:s',$rs->addtime)."\r"; flush(); } exit;
En raison de la différence entre les sauts de ligne sous Linux et Windows. Si le code ci-dessus réagit mal sur le serveur Linux, vous pouvez remplacer "r" par "rn".
Apprentissage recommandé : "Tutoriel vidéo PHP"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!