templeet
pix
corner_top pix


Extraction de texte HTML
Fonction
cuthtml

~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>

&quot;Bonjour, <b><u>Le Monde!</u>&quot;, 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:

 &quot;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:

 &quot;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:

&quot;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:

&quot;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:

&quot;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:

&quot;Bonjour, Le Monde!&quot;, 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.

corner_bottom pix
pix