Extraction de texte HTML Fonction |
~cuthtml() permet de couper un texte HTML selon une certaine longueur, ainsi que d'en supprimer les tags et attributs HTML non autorisés.
La fonction prend 5 arguments :
- La chaîne de texte initiale
- La longueur de texte hors balises HTML à renvoyer (renvoie tout le texte lorsque l'argument est omis)
- La longueur de la fenêtre de recherche pour la balise de fermeture correspondant à la dernière balise rencontrée. (facultatif)
- Le texte de fermeture en cas de coupure (facultatif)
- La liste des balises HTML autorisées (toutes celles par défaut si l'argument est omis, aucune si l'argument est -1)
La liste des balises et des attributs par défaut peut être configurée dans le fichier config.php. - Le type de conversion des guillemets et apostrophes : ENT_COMPAT,ENT_QUOTES ou ENT_NOQUOTES . ENT_COMPAT par défaut)
Pour plus détails voir: http://www.php.net/manual/en/function.htmlentities.php
Exemples:
1. Aucune coupure:
~cuthtml(<![TEXT["Bonjour, <b><u>Le Monde!</u>", hurla l'écho.]TEXT]>)résultat: conversion des guillemets (paramètre ENT_COMPAT par défaut du paramètre 6), fermeture du tag <b>
"Bonjour, <b><u>Le Monde!</u>", hurla l'écho.</b>
2. Coupure à exactement 15 caractères:
~cuthtml(<![TEXT["Bonjour, <b><u>Le Monde!</u>", hurla l'écho.]TEXT]>,15)résultat:
"Bonjour, <b><u>Le Mo</u></b>
3. Coupure à exactement 15 caractères, ajout de ... après la coupure, tous les tags définis par défaut sont autorisés:
~cuthtml(<![TEXT["Bonjour, <b><u>Le Monde!</u>", hurla l'écho.]TEXT]>,15,,'...','')résultat:
"Bonjour, <b><u>Le Mo</u></b>
4. Coupure à exactement 15 caractères,ajout de ... après la coupure, seul le tag <b> est autorisé:
~cuthtml(<![TEXT["Bonjour, <b><u>Le Monde!</u>", hurla l'écho.]TEXT]>,15,,'...','b')résultat:
"Bonjour, <b>Le Mo...</b>
4 bis. Mêmes contraintes que pour l'exemple précédent mais avec passage du paramètre des tags sous forme de tableau:
~cuthtml(<![TEXT["Bonjour, <b><u>Le Monde!</u>", hurla l'écho.]TEXT]>,15,,'...',array('b' => ''))résultat:
"Bonjour, <b>Le Mo...</b>
5. Coupure au premier séparateur rencontré à partir du caractère 15 sur une fenêtre de 10 caractères:
~cuthtml(<![TEXT["Bonjour, <b><u>Le Monde!</u>", hurla l'écho.]TEXT]>,15,10,'...','')résultat:
"Bonjour, <b><u>Le Monde...</u></b>
6. Aucune coupure, suppression de tous les tags:
~cuthtml(<![TEXT["Bonjour, <b><u>Le Monde!</u>", hurla l'écho.]TEXT]>,,,,-1)résultat:
"Bonjour, Le Monde!", hurla l'écho.
Les tags ne sont pas comptés dans le nombre de caractères pour la coupure. Les caractères espace, tabulation, retour à la ligne successifs comptent pour un seul caractère.