Maison  >  Article  >  développement back-end  >  PHP strip_tags()

PHP strip_tags()

王林
王林original
2024-08-29 12:52:401123parcourir

La fonction strip_tags() en PHP est une fonction intégrée qui supprime/supprime une chaîne des balises HTML et PHP. Cela renvoie une chaîne ayant une valeur NULL en octets et HTML, les balises PHP étant supprimées/supprimées de la chaîne d'entrée donnée. Cette fonction est fondamentalement utile lorsque nous affichons les entrées de l'utilisateur sur notre site. Par exemple, lorsque nous créons notre forum de messages sur le site, un utilisateur peut publier un titre comme suit :

CE SITE EST MAUVAIS !

. Si le site Web devait afficher tous les titres de chaque article, ce message indésirable serait également affiché sur le site sous forme de titre à tous les visiteurs de la page. Par conséquent, en utilisant ces fonctions strip_tag(), cela aiderait à éradiquer de tels problèmes.

PUBLICITÉ Cours populaire dans cette catégorie DEVELOPPEUR PHP - Spécialisation | Série de 8 cours | 3 tests simulés

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Syntaxe :

string strip_tags( $str, $allowed_tags )

Paramètres requis : Il y a 2 paramètres que la fonction accepte ;

  • $str étant le paramètre obligatoire et qui est la chaîne principale à vérifier.
  • $allowed_tags est le paramètre non obligatoire qui décrit les balises qui sont autorisées et ne doivent pas être supprimées. Ces balises seront donc conservées.

Valeur de retour : Cette fonction strip_tags nous donne la chaîne résultante supprimée de la chaîne d'entrée.

Exceptions :

  • Cette fonction ne permet pas la validation du HTML.
  • Certaines des éléments supprimés par défaut sont les commentaires HTML et les balises PHP et ces éléments ne peuvent pas être modifiés car ils sont codés en dur.
  • Les balises XHTML à fermeture automatique sont ignorées dans les versions postérieures à PHP 5.3.4 et donc seules les balises à fermeture automatique peuvent être utilisées dans $allowed_tags.

Exemples de fonction PHP strip_tags()

Prenons maintenant quelques exemples pour comprendre le fonctionnement de la fonction PHP strip_tags.

Exemple n°1

Code :

<?php<br /> // PHP programme to demostrate<br /> // strip_tags function without $allowed_tags parameter<br /> echo strip_tags("Hello <b>Sample Program!</b>");<br> ?>

Sortie :

PHP strip_tags()

Dans l'exemple ci-dessus, nous affichons un code PHP simple pour illustrer que la fonction strip_tags peut être utilisée sans spécifier le deuxième paramètre pour spécifier quels caractères sont autorisés. Cela signifie que tous les caractères de la chaîne sont autorisés et imprimés tels quels.

Exemple n°2

Code :

<?php<br /> $str = '<p>To test a paragraph.</p><!-- Starting comments --> <a href="#fragment">Another paragraph goes here</a>';<br> echo strip_tags($str);<br> echo "n";<br> // Here we allow HTML tag <p><br> echo strip_tags($str, '<p>');<br> // In the version till PHP 7.4.0 the above code can be written as:<br> // echo strip_tags($str, ['p', 'a']);<br> ?>

Sortie :

PHP strip_tags()

Dans l'exemple ci-dessus, nous spécifions d'abord le code HTML requis et l'attribuons à la chaîne d'entrée $str. Nous utilisons ensuite la fonction strip tag sur cette chaîne en utilisant un seul paramètre. Nous présentons ensuite l'utilisation du deuxième paramètre $allow_tags où nous spécifions uniquement la balise

ce qui signifie que seul

la balise doit être autorisée et toutes les balises doivent être coupées. Par conséquent, dans le résultat, nous pouvons voir que seul

les informations sur la balise s'affichent et les informations sur les balises ne sont pas affichées. Nous pouvons également voir que dans la sortie, les commentaires HTML ne sont pas imprimés et prouve donc que les commentaires HTML sont coupés par cette fonction par défaut même si nous ne le précisons pas dans la deuxième liste de paramètres.

Avertissements :

  • Cette fonction ne peut pas être utilisée pour empêcher certaines attaques comme XSS. Il existe d'autres méthodes ou fonctions appropriées comme htmlspecialchars() qui peuvent être utilisées à cette fin en fonction du type de sortie requis.
  • La fonction strip_tags() se contente de supprimer les balises HTML sans vraiment les valider. En conséquence, cela peut entraîner des balises brisées ou la suppression de plus/moins de données que prévu. Il faut donc y faire attention lors de la spécification du deuxième paramètre de la fonction.
  • Cette fonction ne prend pas non plus en charge aucune modification des paramètres que nous spécifions dans la fonction $allowed_tags, y compris également les attributs onmouseover et style que certains utilisateurs peuvent utiliser pour publier un texte à afficher à d'autres utilisateurs.
  • Une autre chose à noter lors de l'utilisation de cette fonction est que les noms de balises dont les caractères sont supérieurs à une longueur spécifiée (1023 octets) dans le HTML seront traités comme s'ils étaient invalides, quel que soit ce que nous donnons dans $allowed_tags comme paramètres. .

Exemple #3

Code :

<?php<br /> $str = '<a title="" href="/index.html"><b>Some Text</b></a><br> Just a sample text to showcase a paragraph coming in HTML body';<br> echo strip_tags_content($str);<br> function strip_tags_content($str) {<br> return preg_replace('@<(w+)b.*?>.*?</1>@si', '', $str);<br> }<br> ?>

Sortie :

PHP strip_tags()

Dans l'exemple ci-dessus, nous utilisons la fonction strip_tags pour supprimer la balise d'ancrage ainsi que son contenu dans sa chaîne d'entrée. PHP strip_tags supprimera automatiquement les balises HTML d'ouverture et de fermeture lorsqu'elles seront supprimées.

Exemple n°4

Code :

<?php<br /> $str = '<?= '<?= 1 ?>' ?>2';<br> var_dump(strip_tags($str));<br> ?>

Sortie :

PHP strip_tags()

Cet exemple montre comment supprimer le contenu d'une balise PHP imbriquée.

Exemple #5

Code :

<?php // Test.php<br /> $str = '<br>Trial<br/>on<br />NewLine';<br> $d = strip_tags($str, '<br />');<br> var_dump($d); // Displays string(11) "TraialonNewLine" on output<br> ?>

Sortie :

PHP strip_tags()

Dans cet exemple, nous pouvons voir que nous autorisons uniquement le contenu à l'intérieur de
chaîne et cette sortie ici changera à mesure que nous fonctionnerons dans différentes versions de PHP.

Exemple #6

Code :

<?php<br> function strip_tags_d($a)<br> {<br> return is_array($a) ?<br> array_map('strip_tags_d', $a) :<br> strip_tags($a);<br> }<br> // Example<br> $arr1 = array('<b>Car</b>', '<i>Bat</i>', array('<b>Car</b>', '<i>Bat</i>'));<br> $arr1 = strip_tags_d($arr1);<br> // Output<br> print_r($arr1);<br> ?>

Sortie :

PHP strip_tags()

Dans l'exemple ci-dessus, nous affichons l'utilisation de fonctions récursives pour la fonction strip_tags. Par conséquent, dans la sortie, nous pouvons voir que le tableau est imprimé en boucles de 2.

Conclusion

Comme indiqué ci-dessus, nous avons vu comment supprimer certaines balises HTML et PHP indésirables du code en utilisant la fonction strip_tags(). Cette fonction peut analyser la chaîne d'entrée et extraire sa structure. Il coupe ou remplace généralement les balises HTML ou PHP données que nous transmettons sous forme de liste d'arguments d'entrée à supprimer du document HTML. Ceci est également utilisé dans les cas où nous devons uniquement supprimer les balises PHP et non HTML et vice versa.

Article recommandé

Ceci est un guide du PHP strip_tags(). Nous discutons ici de l'introduction à la fonction PHP strip_tags() et de ses exemples ainsi que de l'implémentation du code. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus-

  1. Frameworks PHP
  2. PHP chop()
  3. PHP setlocale()
  4. PHP strtotime

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
Article précédent:file_put_contents en PHPArticle suivant:file_put_contents en PHP