Maison > Article > développement back-end > Comment supprimer les balises HTML à l'aide d'une expression régulière en PHP
Lors de l'écriture d'applications Web, nous devons souvent supprimer les balises HTML des entrées utilisateur et les convertir au format texte brut. Cela empêche les attaques de cross-site scripting (XSS) et améliore la lisibilité du contenu textuel. En PHP, vous pouvez utiliser des expressions régulières pour atteindre cet objectif.
Une méthode courante consiste à utiliser la fonction strip_tags() de PHP. Cette fonction supprime toutes les balises HTML de la chaîne. Cependant, il existe des cas où vous souhaiterez peut-être conserver certaines balises, telles que les balises de lien et d'image. Dans ce cas, les expressions régulières sont utiles.
Tout d'abord, voyons comment utiliser des expressions régulières pour supprimer les balises HTML et les convertir en texte brut. Ce qui suit est un exemple de code PHP simple :
$string = "<p>这是带有<strong> HTML标记 </strong>的文本。</p>"; $text = preg_replace("/<[^>]+>/", '', $string); echo $text; // 输出: 这是带有 HTML标记 的文本。
Cette expression régulière signifie : rechercher tout le texte de la chaîne qui commence par "a5c16724a7c1e0fb8abe7af50cda6080" et remplacez-le. supprimé).
Voyons maintenant comment conserver uniquement certaines balises HTML. Supposons que nous souhaitions conserver les balises 16e3673c8f9326235a5217cdf963cf19 Voici un exemple de code :
$string = "<p>这是带有<strong> HTML标记 </strong>的文本,其中有<a href='http://example.com'>链接</a>和<img src='image.jpg'>。</p>"; $text = preg_replace("/<(?!a|img)[^>]*>/", '', $string); echo $text; // 输出: 这是带有 HTML标记 的文本,其中有<a href='http://example.com'>链接</a>和<img src='image.jpg'>。
Cette expression régulière signifie : rechercher tout le texte de la chaîne qui commence par "a5c16724a7c1e0fb8abe7af50cda6080", mais il ne doit pas être < ; > ou <
Nous pouvons utiliser (?!) une anticipation négative pour atteindre cet objectif. Cette expression indique au moteur d'expressions régulières : "Recherchez une balise qui commence par "a5c16724a7c1e0fb8abe7af50cda6080" mais qui n'est pas une balise 16e3673c8f9326235a5217cdf963cf19 ou a482408f4345e9b47492d085db8fef6a
#. 🎜🎜# Veuillez noter que nous utilisons également " " pour correspondre aux limites de l'étiquette. En effet, si nous l'omettons, par exemple en utilisant "6f67d133e3f3b3ef4facad06181926f3" et "c4926a10856efbfad743825c5ba63557". En utilisant la méthode ci-dessus, vous pouvez utiliser des expressions régulières en PHP pour supprimer les balises HTML et les convertir en texte brut. Veuillez noter qu'il ne s'agit que d'une étape dans la prévention des attaques XSS. Il est souvent nécessaire d'utiliser d'autres technologies telles que la validation des entrées, le filtrage des sorties et la gestion des sessions pour améliorer la sécurité des applications Web.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!