(PHP 4, PHP 5, PHP 7, PHP 8)
strip_tags — Supprime les balises HTML et PHP d'une chaîne
$string
, array|string|null $allowed_tags
= null
): string
strip_tags() tente de retourner la chaîne string
après avoir supprimé tous les octets nuls, toutes les balises PHP et HTML du code.
Elle génère des alertes si les balises sont incomplètes ou erronées. Elle utilise
le même moteur de recherche que fgetss().
string
La chaîne d'entrée.
allowed_tags
Vous pouvez utiliser ce paramètre optionnel pour spécifier les balises qui ne doivent pas être supprimées. Ils sont soit fournie en tant que chaîne de caractères, ou à partir de PHP 7.4.0, en tant que tableau. Se référer aux examples ci-dessous pour le format de ce paramètre.
Note:
Les commentaires HTML et PHP sont également supprimés. Ce comportement ne peut être modifié avec le paramètre
allowed_tags
.
Note:
Les balises auto-fermantes XHTML sont ignorées et seules les balises qui ne sont pas auto-fermantes doivent être utilisées dans la chaîne
allowed_tags
. Par exemple, pour autoriser à la fois<br>
et<br/>
, vous devez utiliser :<?php
strip_tags($input, '<br>');
?>
Retourne la chaîne échappée.
Version | Description |
---|---|
8.0.0 |
allowed_tags est désormais nullable.
|
7.4.0 |
allowed_tags accepte désormais un tableau.
|
Exemple #1 Exemple avec strip_tags()
<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";
// Autorise <p> et <a>
echo strip_tags($text, '<p><a>');
// à partir de PHP 7.4.0 la ligne ci-dessus peut être écrite en tant que :
// echo strip_tags($text, ['p', 'a']);
?>
L'exemple ci-dessus va afficher :
Test paragraph. Other text <p>Test paragraph.</p> <a href="#fragment">Other text</a>
Cette fonction ne devrait pas être utilisé pour empêcher les attaques XSS. Utiliser des fonctions plus approprié comme htmlspecialchars() ou d'autres méthodes en fonction du contexte de la sortie.
Comme strip_tags() ne valide pas le HTML, les balises partielles ou rompues peuvent conduire à la suppression de plus de textes/données que désiré.
strip_tags() ne modifie pas les attributs des
balises que vous autorisez via le paramètre allowed_tags
,
y compris les attributs style
et onmouseover
, que des
utilisateurs mal intentionnés peuvent utiliser.
Note:
Les noms des balises dans le HTML d'entrée qui sont supérieurs à 1023 octets de longueur seront traités comme invalides, suivant le paramètre
allowed_tags
.