Maison >développement back-end >tutoriel php >Comment tronquer du texte HTML sans déformer les balises ?

Comment tronquer du texte HTML sans déformer les balises ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-11 16:40:02592parcourir

How to Truncate HTML Text Without Distorting Tags?

Tronquer le texte HTML sans déformer les balises

La nécessité de tronquer le texte contenant du HTML tout en préservant la validité des balises est une exigence courante dans le développement Web . Cependant, l'application directe de la troncature de chaîne conduit souvent à des sections de texte déformées ou incomplètes en raison de la présence de balises non fermées.

Analyse HTML pour une troncature précise

Une méthode efficace La solution consiste à analyser le code HTML et à gérer soigneusement l'ouverture et la fermeture des balises. Cela garantit que le texte tronqué final conserve son intégrité structurelle. Voici une approche étape par étape :

  1. Suivez les balises ouvertes : Conservez une pile de balises ouvertes rencontrées lors de l'analyse du HTML.
  2. Imprimez Fragments de texte : Parcourez le HTML et imprimez les fragments de texte qui précèdent tout balises.
  3. Gérer les entités HTML et les séquences multi-octets : Les entités (par exemple, <, &) et les séquences codées en UTF-8 sont traitées et transmises sans modification pour préserver leur représentation complète des caractères.
  4. Traitement des balises d'ouverture : Lorsqu'une balise d'ouverture est rencontrée, elle est poussée sur la balise empiler. Les balises à fermeture automatique sont directement imprimées.
  5. Traitement des balises de fermeture : Lorsqu'une balise de fermeture est rencontrée, elle est extraite de la pile de balises et sa balise d'ouverture correspondante est vérifiée pour une imbrication correcte. La balise de fermeture est imprimée.
  6. Fermer les balises restantes : Après avoir analysé l'intégralité du HTML, toutes les balises ouvertes restant sur la pile sont fermées dans l'ordre inverse.

Implémentation PHP de la troncature compatible HTML

La fonction PHP suivante montre comment tronquer du HTML texte tout en préservant les balises :

function printTruncated($maxLength, $html, $isUtf8 = true) {
    // ... Function logic goes here
}

Exemple d'utilisation

printTruncated(10, '&lt;Hello&gt;  world!'); // Output: "  world!"

Conclusion

En analysant le HTML et en gérant les balises de manière appropriée, nous pouvons tronquer le texte tout en conservant son intégrité structurelle. Cela garantit que les liens, le formatage et les autres éléments HTML sont préservés, offrant ainsi une expérience utilisateur plus précise et significative.

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