Ce face strip_tags
strip_tags scoate toate etichetele (<p>, <b>, <script>…) și lasă textul dintre ele. Este utilă pentru rezumate, meta descrieri sau pentru a număra cuvintele dintr-un articol.
Prin $allowed_tags poți păstra unele etichete, ca text ("<b><i>") sau, din PHP 7.4, ca tablou (["b", "i"]).
Parametri
| Parametru | Descriere |
|---|---|
$string |
Textul cu HTML. |
$allowed_tags |
Opțional. Etichetele care rămân în text. |
Ce returnează
Textul fără etichete.
Exemple
Exemplul 1: Text simplu dintr-un articol HTML
Etichetele dispar fără să lase un spațiu în locul lor, de aceea „Titlu” și „Primul” s-au lipit.
<?php
$html = "<h2>Titlu</h2><p>Primul paragraf cu <a href=\"/php/\">un link</a>.</p>";
echo strip_tags($html);
Rezultat
TitluPrimul paragraf cu un link.
Exemplul 2: Păstrarea unor etichete
Etichetele permise rămân cu tot cu atribute. În al doilea apel, <p> este permis și își păstrează atributul onclick, deci rezultatul nu este sigur de afișat.
<?php
$html = '<p onclick="alert(1)">Salut, <b>Ana</b>! <script>x()</script></p>';
echo strip_tags($html, "<b>") . "\n";
echo strip_tags($html, ["p", "b"]);
Rezultat
Salut, <b>Ana</b>! x()
<p onclick="alert(1)">Salut, <b>Ana</b>! x()</p>
Greșeli frecvente
- Folosești
strip_tagsca protecție împotriva XSS. Etichetele permise își păstrează atributele (onclick,onerror). Pentru afișare sigură foloseștehtmlspecialchars. - Te aștepți ca
strip_tagssă șteargă și conținutul din<script>. Șterge doar etichetele: textulx()rămâne.
Comenzi înrudite
htmlspecialchars: Transformă caracterele speciale HTML în entități, ca textul să fie afișat în siguranță în pagină.htmlentities / html_entity_decode: Transformă în entități HTML toate caracterele care au o entitate (é devine é). html_entity_decode face operația inversă.nl2br: Adaugă eticheta <br /> înaintea fiecărei linii noi, ca rândurile să apară separat în pagina HTML.