Maison > développement back-end > Problème PHP > Comment supprimer le HTML et obtenir du texte brut en php

Comment supprimer le HTML et obtenir du texte brut en php

PHPz
Libérer: 2023-04-10 11:03:01
original
1603 Les gens l'ont consulté

Avec le développement continu d'Internet et l'amélioration des besoins des utilisateurs, de plus en plus de sites Web doivent fournir des fonctions d'édition de texte, afin que les utilisateurs puissent ajouter, modifier ou supprimer du contenu sur la page. Lorsque ces contenus sont enregistrés dans la base de données ou affichés sur la page, ils doivent généralement subir un certain traitement pour les transformer au format texte brut.

Pour les programmeurs PHP, le processus de suppression du HTML, c'est-à-dire le processus de conversion d'un morceau de texte enrichi au format texte brut, est une compétence importante. Alors, comment utiliser PHP pour supprimer le HTML et obtenir du texte brut ? L'article suivant donnera quelques méthodes pratiques sur ce sujet.

Utilisez la fonction strip_tags() pour supprimer les balises HTML

Il existe une fonction strip_tags() en PHP, qui peut supprimer les balises HTML et obtenir une chaîne au format texte brut. Le format de la fonction est le suivant :

string strip_tags ( string $str [, string $allowable_tags ] )
Copier après la connexion

Le premier paramètre est la chaîne à traiter et le deuxième paramètre est le nom de l'élément de balise qui peut être conservé. Si le deuxième paramètre n'est pas spécifié, toutes les balises HTML seront supprimées.

Par exemple, le code suivant supprimera tous les éléments de balise dans le texte HTML et affichera le résultat :

<?php
    $html = &#39;<div><p>Hello, world!</p></div>';
    $text = strip_tags($html);
    echo $text; // 输出结果:Hello, world!
?>
Copier après la connexion

La méthode ci-dessus peut être étendue pour prendre en charge la conservation des éléments de balise spécifiés.

<?php
    $html = &#39;<div><p>Hello, world!</p><a href="www.google.com">Google</a></div>';
    $text = strip_tags($html, '<p>');
    echo $text; // 输出结果:<p>Hello, world!</p>
?>
Copier après la connexion

Utilisez des expressions régulières pour supprimer les balises HTML

En plus de la fonction strip_tags(), l'utilisation d'expressions régulières est également une méthode courante. Les expressions régulières peuvent faire correspondre les balises HTML et les supprimer. Voici un exemple de code :

<?php
    $html = &#39;<div><p>Hello, world!</p></div>';
    $text = preg_replace('/<[^>]*>/', '', $html);
    echo $text; // 输出结果:Hello, world!
?>
Copier après la connexion

Utilisez la fonction preg_replace() et l'expression régulière "/<1*>/" pour supprimer les balises HTML. Cette expression régulière peut correspondre à n'importe quelle chaîne commençant par "<" et se terminant par ">". Le "^>" signifie correspondre à tous les caractères sauf ">".

Réalisez une suppression plus sophistiquée des balises HTML

Bien que les deux méthodes ci-dessus soient simples et efficaces, elles supprimeront complètement les balises HTML, y compris certaines marques de formatage, telles que le gras, l'italique, le soulignement, etc. Que faire si vous ne souhaitez pas supprimer complètement ces balises, mais souhaitez simplement conserver leur style ?

À l'heure actuelle, nous pouvons utiliser l'extension PHP DOM pour réaliser une suppression plus sophistiquée des balises HTML. L'extension PHP DOM est une extension puissante et flexible qui peut analyser des documents HTML et XML, puis les utiliser, comme interroger, insérer, supprimer des nœuds, etc.

Ce qui suit est un exemple de code qui utilise l'extension PHP DOM pour supprimer les balises HTML :

<?php
    $html = &#39;<div><p><strong>Hello, </strong><i>world</i>!</p></div>';
    
    $dom = new DOMDocument();
    $dom->loadHTML($html);

    $body = $dom->getElementsByTagName('body')->item(0);
    $text = $body->textContent;

    echo $text; // 输出结果:Hello, world!
?>
Copier après la connexion

Créez d'abord un objet DOMDocument, puis transmettez la chaîne HTML à traiter à sa méthode loadHTML(). Ensuite, utilisez la méthode getElementsByTagName('body')->item(0) pour obtenir l'élément body en HTML, puis utilisez l'attribut textContent pour obtenir tout le contenu en texte brut sous l'élément body. Enfin, les résultats sont affichés à l'écran.

Résumé

Cet article présente trois méthodes basées sur PHP pour supprimer les balises HTML et obtenir du texte brut. La première est une simple fonction strip_tags(), qui peut réaliser la suppression de balises HTML la plus élémentaire. La deuxième méthode utilise les avantages des expressions régulières pour faire correspondre et supprimer les balises HTML. La troisième méthode utilise l'extension PHP DOM, qui peut contrôler complètement le HTML. système et contrôler plus finement les résultats de sortie. Chacun peut choisir de l'utiliser de manière flexible en fonction de ses propres besoins.


  1. >

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal