Maison > Article > développement back-end > Comment supprimer les balises HTML d'une chaîne en PHP à l'aide d'expressions régulières
En PHP, les expressions régulières peuvent être utilisées pour supprimer facilement les balises HTML des chaînes. Les balises HTML sont généralement des langages de balisage entourés de crochets angulaires et sont utilisées pour représenter divers contenus dans des pages Web, tels que des titres, des paragraphes, des images, des liens, etc. Cependant, à un moment donné, nous devrons peut-être supprimer les balises HTML de la chaîne pour un meilleur traitement et une meilleure présentation des données. Voyons comment utiliser les expressions régulières pour accomplir cette tâche en PHP.
Tout d’abord, soyons clairs : utiliser des expressions régulières pour traiter les balises HTML n’est pas une solution parfaite. Bien que les expressions régulières soient très puissantes, il existe de nombreuses formes et utilisations différentes des balises HTML. Par conséquent, les expressions régulières peuvent ne pas couvrir toutes les situations. Par conséquent, nous devons peser le pour et le contre et choisir la méthode la plus appropriée en fonction des besoins spécifiques et des caractéristiques des données.
Maintenant, examinons quelques expressions régulières couramment utilisées pour supprimer les balises HTML des chaînes.
Cette méthode peut supprimer toutes les balises HTML de la chaîne, ne laissant que le contenu en texte brut. Il utilise une expression régulière très simple :
$text = preg_replace('/<[^>]*>/', '', $text);
La signification de cette expression régulière est : correspond à n'importe quelle chaîne commençant par "06630b5371c2f57a0a4e64be374879e7", où ">" est précédé de " 1 " signifie n'importe quel caractère sauf ">", "" signifie qu'il peut apparaître n'importe quel nombre de fois.
Si vous ne souhaitez pas supprimer toutes les balises HTML, mais souhaitez simplement supprimer certaines balises spécifiées, vous pouvez utiliser l'expression régulière suivante :
$text = preg_replace('/<(/)?(p|ul|ol|li|strong|em)>/', '', $text);
La signification de cette expression régulière est : match Chaînes de la forme : "e388a4556c0f65e1904146cc1a846bee", "94b3e26ee717c64999d7867364b1b4a3", "ff6d136ddc5fdfeffaf53ff6ee95f185", "929d1f5ca49e04fdcb27f9465b944689", "c34106e0b4e09414b63b2ea253ff83d6", "f6f112ef45f603be226bc581f9dd5e90" "25edfb22a4f469ecb59f1190150159c6", "bed06894275b65c1ab86501b08a632eb", "", "", "" et "". Où "(/) ?" représente un symbole barre oblique facultatif, utilisé pour correspondre aux balises de fermeture telles que "/p" et "/ul". "(p|ul|ol|li|strong|em)" représente un nom de balise facultatif, où "|" représente un OU logique.
Contrairement à la suppression des balises HTML spécifiées, nous pouvons parfois avoir besoin de conserver certaines balises spécifiées et de supprimer d'autres balises. À ce stade, vous pouvez utiliser l'expression régulière suivante :
$text = preg_replace('/<(?!p|a)(/)?[^>]*>/', '', $text);
La signification de cette expression régulière est : correspond à n'importe quelle chaîne commençant par "d781ced38830d8af7321726fc4d5e93e".
Parfois, nous souhaitons non seulement supprimer les balises HTML elles-mêmes, mais également leur contenu. À l'heure actuelle, vous pouvez utiliser l'expression régulière suivante :
$text = preg_replace('/<[^>]*>.*?</[^>]*>/', '', $text);
La signification de cette expression régulière est : correspond à tout ce qui commence par "b24b58618da73dbb223d1bda37d2e9d8", et contient des caractères au milieu jusqu'à "1123d8e08dfd0495cae24c65d510054d↩
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!