Maison >développement back-end >tutoriel php >Comment supprimer les balises HTML en PHP à l'aide d'expressions régulières

Comment supprimer les balises HTML en PHP à l'aide d'expressions régulières

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBoriginal
2023-06-22 17:00:111010parcourir

Dans le développement web, le HTML est un élément essentiel. Mais parfois, nous devons extraire du texte brut du HTML sans balises HTML. À l’heure actuelle, les expressions régulières sont un outil très pratique.

En PHP, vous pouvez utiliser la fonction preg_replace() pour supprimer les balises HTML. L'utilisation de cette fonction est la suivante :

preg_replace($pattern, $replacement, $subject);

Où, $pattern est le modèle d'expression régulière, $replacement est la chaîne de remplacement et $subject est la chaîne à traiter. Notez que $pattern et $replacement peuvent être des tableaux, comme indiqué ci-dessous.

Ensuite, nous discuterons de plusieurs expressions régulières courantes pour supprimer les balises HTML.

  1. Supprimer les balises HTML
$pattern = '/<[^>]*>/';
$replacement = '';
$text = preg_replace($pattern, $replacement, $html);

Dans cette expression régulière, 5ab2454885e1fc1748ff32cd2cd74cd9 Le jeton (?s) signifie que . correspond à n'importe quel caractère, y compris les nouvelles lignes. Cette expression est également non gourmande car elle utilise *?, qui correspondra au moins de caractères possible.

  1. Supprimer les balises de style
$pattern = '/<style[^>]*>(.*?)</style>/is';
$replacement = '';
$text = preg_replace($pattern, $replacement, $html);

Cette expression régulière fera correspondre n'importe quel texte avec une balise c9ccee2e6ea535a969eb3f532ad9fe89 Les marqueurs (?s) et *? sont utilisés de la même manière que dans l'exemple précédent.

  1. Supprimer les balises vides
$pattern = '/<([a-z]+)(?:s+[^>]+)?>(s*)</>/i';
$replacement = '';
$text = preg_replace($pattern, $replacement, $html);

Cette expression régulière correspondra à toutes les balises vides et les supprimera. (s*) correspondra à n’importe quel caractère d’espacement. ? : représente un groupe non capturant, ce qui signifie qu'il sera mis en correspondance mais pas remplacé.

  1. Supprimez les caractères d'espacement inutiles
$pattern = '/>s+</';
$replacement = '><';
$text = preg_replace($pattern, $replacement, $html);

Cette simple expression régulière fera correspondre n'importe quel caractère d'espacement entre deux balises et le remplacera par un seul espace.

Pour résumer, ces expressions régulières sont souvent utilisées lors de la suppression des balises HTML. Bien entendu, il existe de nombreuses façons de supprimer les balises HTML. Le choix final dépend de vos besoins spécifiques et de la manière dont votre code est implémenté.


  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!

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