Maison >développement back-end >tutoriel php >Comment puis-je supprimer de manière fiable plusieurs séquences de nomenclature UTF-8 des fichiers de modèle PHP ?

Comment puis-je supprimer de manière fiable plusieurs séquences de nomenclature UTF-8 des fichiers de modèle PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-08 20:05:12628parcourir

How Can I Reliably Remove Multiple UTF-8 BOM Sequences from PHP Template Files?

Élimination de plusieurs séquences de nomenclature UTF-8

En réponse au problème de sortie du HTML brut à partir de fichiers modèles à l'aide de PHP5, où la suppression de le Byte Order Mark (BOM) ne résolvait pas la compatibilité avec Firefox, une solution plus complète a été identifiée.

Lors de la tentative de suppression la nomenclature, le code fourni :

if (substr($t, 0, 3) == b'\xef\xbb\xbf') {
    $t = substr($t, 3);
}

ne traite que de la suppression d'une seule séquence de nomenclature. Cependant, pour garantir la compatibilité avec Firefox, il est nécessaire d'éliminer toutes les instances de la nomenclature.

Code révisé pour la suppression de la nomenclature

Pour supprimer plusieurs séquences de nomenclature UTF-8 , le code suivant est recommandé :

function remove_utf8_bom($text)
{
    $bom = pack('H*','EFBBBF');
    $text = preg_replace("/^$bom/", '', $text);
    return $text;
}

Explication du Code

  • pack('H*','EFBBBF') : Cette ligne crée une représentation sous forme de chaîne binaire de la nomenclature UTF-8.
  • preg_replace("/^ $bom/", '', $text) : Cette ligne utilise des expressions régulières pour rechercher et supprimer toutes les occurrences de la séquence BOM au début de la chaîne (^ désigne le début de la séquence string).

En implémentant ce code, les fichiers modèles seront rendus correctement, résolvant le problème de compatibilité avec Firefox.

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