Maison  >  Article  >  développement back-end  >  Que faire si les téléchargements php excellent avec des caractères tronqués

Que faire si les téléchargements php excellent avec des caractères tronqués

藏色散人
藏色散人original
2020-08-27 11:05:092501parcourir

Solution au téléchargement Excel tronqué depuis PHP : 1. Annulez la sortie de toute information non liée au fichier pendant le processus de téléchargement ; 2. Enregistrez le format Excel de sortie et le nom du suffixe cohérents ; méthode pour effacer le tampon.

Que faire si les téléchargements php excellent avec des caractères tronqués

Recommandé : "Tutoriel vidéo PHP"

Écrivez du code, utilisez PHP pour en télécharger un que j'ai téléchargé Cette erreur se produit lorsque Excel est bon :

Lorsque l'ouverture est forcée, des caractères tronqués apparaissent.

Après la recherche, il y a deux explications :

1. Ne pas afficher d'informations non liées au fichier pendant le processus de téléchargement, telles que les informations du journal d'écho. Sinon, le fichier téléchargé ne pourra pas être ouvert, ce qui entraînera une erreur de format ou le fichier sera endommagé.
2. Le format Excel de sortie doit être cohérent avec le nom du suffixe enregistré, sinon une erreur de format sera générée ou le fichier sera endommagé.

J'ai donc changé la position de la balise a sur laquelle j'ai cliqué pour télécharger et vérifié le suffixe Excel, mais cela n'a pas fonctionné.

Plus tard, j'ai cherché et découvert qu'il pourrait s'agir d'un problème avec l'en-tête de la nomenclature, car lors de l'ouverture d'un fichier tronqué, il y aura trois caractères "0xEF 0xBB 0xBF" devant lui. Et PHP ne peut pas reconnaître l'en-tête de la nomenclature.

Explication de l'en-tête BOM : Dans un fichier encodé en utf-8, la BOM est dans l'en-tête du fichier et occupe trois octets pour indiquer que le fichier appartient à l'encodage utf-8. Il s'agit généralement d'une chaîne de caractères masqués. De nombreux logiciels peuvent reconnaître et ignorer l'en-tête de la nomenclature, mais PHP ne le peut pas.

Par conséquent, vous pouvez utiliser des logiciels tels que editplus, ultraedit ou WINHEX pour supprimer l'en-tête de la nomenclature avant le téléchargement. Si vous l'avez téléchargé, supprimez l'en-tête de la nomenclature et rouvrez-le.

De plus, vous pouvez également ajouter un code : ob_clean() à votre readfile et fread, c'est-à-dire avant la sortie, pour vider le tampon.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn