Maison  >  Article  >  développement back-end  >  Comment résoudre le problème tronqué d'Excel téléchargé par PHP

Comment résoudre le problème tronqué d'Excel téléchargé par PHP

藏色散人
藏色散人original
2020-08-06 10:34:452240parcourir

Solution au téléchargement Excel tronqué depuis PHP : 1. Ne produisez aucune information non liée au fichier pendant le processus de téléchargement ; 2. Enregistrez le format Excel de sortie et le nom de suffixe cohérents ; " Fonction Effacer le tampon.

Comment résoudre le problème tronqué d'Excel téléchargé par PHP

Recommandation : "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 :

Lorsqu'on force l'ouverture, 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