php écrit des caractères txt tronqués

王林
Libérer: 2023-02-24 09:36:02
original
4360 Les gens l'ont consulté

php écrit des caractères txt tronqués

Je crois que de nombreuses personnes ont rencontré des fichiers générés tronqués lors de l'utilisation de PHP, qu'ils soient écrits en utilisant fwrite ou file_put_contents. Peut-être que vous essaierez de le résoudre en encodant d'abord, mais le résultat final n'est souvent pas idéal, même si nous l'avons converti en encodage UTF-8...

Alors, quelle est la cause profonde ? Il lui manque juste la nomenclature principale (bien sûr, cela ne fait certainement pas référence à la nomenclature Js).

BOM

Puisque BOM est mentionné, certains étudiants ne connaissent peut-être pas très bien ce type. Permettez-moi de le mentionner brièvement ici. Lorsque vous utilisez un programme tel que le Bloc-notes pour enregistrer un fichier texte au format UTF-8 sous Windows, le Bloc-notes ajoutera quelques caractères invisibles (EF BB BF) devant l'en-tête du fichier, qui est ce qu'on appelle BOM (Byte order Marque). ).

Non limité aux fichiers enregistrés dans le Bloc-notes, à condition que l'ouverture du fichier contienne "EF BB BF" plusieurs caractères invisibles (l'hexadécimal doit être xEFxBBxBF, visible lors de l'édition du fichier en binaire). C'est comme une convention. Lorsque le système verra cette chose, il pensera que votre fichier est codé en UTF-8.

C'est pourquoi lorsque le fichier n'a pas de nomenclature, le fichier que vous présentez à l'utilisateur peut être tronqué.

PS : En fait, vous pouvez comprendre BOM comme l'attribut charset en HTML et l'attribut encoding en XML, qui servent d'identifiant.

Solution :

Alors, comment générer une nomenclature en PHP ?

La réponse est Sortie avant que tout le contenu ne soit affiché :

print(chr(0xEF).chr(0xBB).chr(0xBF));
Copier après la connexion

Bien sûr, si vous générez un fichier, il peut s'agir des deux suivants :

fwrite($file, chr(0xEF).chr(0xBB).chr(0xBF));
file_put_contents($file, chr(0xEF).chr(0xBB).chr(0xBF));
Copier après la connexion

Le contenu ci-dessus est à titre de référence uniquement !

Tutoriel 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal