PHP: fonction pour convertir un texte HTML en texte brut

Pour l’envoi des derniers billets du blog par email, j’ai cherché une fonction PHP permettant de convertir un texte HTML en texte brut… pas facile du tout, ou alors, je n’ai pas cherché au bon endroit ;). Pour finir, je me suis rabattu sur des fonctions de SPIP (vu qu’il existe un filtre SPIP “textebrut”). Voici ce que j’ai utilisé et qui fonctionne bien:

// Suppression basique et brutale de tous les < ...>
function supprimer_tags($texte, $rempl = "") {
// super gavant : la regexp ci-dessous plante sous php3, genre boucle infinie !
// $texte = ereg_replace("< ([^>\"']*|\"[^\"]*\"|'[^']*')*>", $rempl, $texte);
$texte = ereg_replace("< [^>]*>", $rempl, $texte);
return $texte;
}

// Convertit un texte HTML en texte brut
function textebrut($texte) {
$texte = ereg_replace("[\n\r]+", " ", $texte);
$texte = eregi_replace("< (p|br)([[:space:]][^>]*)?".">", "\n\n", $texte);
$texte = ereg_replace("^\n+", "", $texte);
$texte = ereg_replace("\n+$", "", $texte);
$texte = ereg_replace("\n +", "\n", $texte);
$texte = supprimer_tags($texte);
$texte = ereg_replace("(&nbsp;| )+", " ", $texte);
return $texte;
}

Si vous connaissez une fonction plus simple, je suis preneur :). J’ai essayé la fonction strip_tags qui m’enlevait bien les balises HTML mais qui me laissait les espaces br ou p…

No tag for this post.

feed rss Vous aimez ce type de contenu?
Alors suivez-ce blog par RSS ou par email!

Continuez la lecture avec les articles suivants



3 commentaires pour “PHP: fonction pour convertir un texte HTML en texte brut”

  1. Anthony dit :

    Ca sert à quoi ? A envoyer une page html pour qu’elle s’affiche dans le client mail qui la reçoit ?

    ah…
    Je désire envoyer par email les derniers billets du blog pour ceux qui n’utilisent pas RSS. Il me fallait pour cela le contenu des billets sans tout le tralala HTML (liens, gras, saut de ligne, etc.), du texte brut de chez brut en somme. D’où le besoin d’une telle fonction.
    david

  2. Fares Belhaouas dit :

    J’ai trouvé une classe, je ne sais pas si ça peut vous aider:

    http://www.chuggnutt.com/html2text.php

  3. morganistic dit :

    merci, ce lien m’ a été très très très utile:
    http://www.chuggnutt.com/html2text.php

    en l’ appelant comme celà ça marche du tonnerre:
    public function textebrut($texte)
    {
    $texte=strtr($texte,”ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ”,”aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn”);
    $h2t = new html2text($texte);
    $text = $h2t->get_text();
    return $text;
    }

    car la classe ne gère pas les accents!

Laisser un commentaire



Tag Cloud