(PHP 4, PHP 5, PHP 7, PHP 8)
strip_tags — Retira las etiquetas HTML y PHP de un string
Esta función intenta devolver un string con todos los bytes NULL y las etiquetas HTML y PHP retirados de un str
dado. Se utiliza la misma máquina de estado de retirado de etiquetas que la función fgetss().
str
El string de entrada.
allowable_tags
Se puede usar el segundo parámetro opcional para especificar cuales etiquetas no deben ser retiradas.
Nota:
Los comentarios HTML y etiquetas PHP también son retirados. Esto está en el código y no puede ser cambiado mediante
allowable_tags
.
Nota:
En PHP 5.3.4 y posterior, la etiquetas de autocierre de XHTML son ignoradas, por lo que solamente deberían utilizarse etiquetas sin autocierre en
allowable_tags
. Por ejemplo, para permitir tanto<br>
como<br/>
, se debería utilizar:<?php
strip_tags($input, '<br>');
?>
Devuelve el string con las etiquetas retiradas.
Versión | Descripción |
---|---|
5.3.4 | strip_tags() ignora las etiquetas de autocierre de XHTML en allowable_tags . |
5.0.0 | strip_tags() ahora es segura a nivel binario. |
Ejemplo #1 Ejemplo de strip_tags()
<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";
// Permite <p> y <a>
echo strip_tags($text, '<p><a>');
?>
El resultado del ejemplo sería:
Test paragraph. Other text <p>Test paragraph.</p> <a href="#fragment">Other text</a>
Debido a que strip_tags() en realidad no valida el HTML, etiquetas parciales o rotas, pueden resultar en la eliminación de más texto/datos de lo que se espera.
Esta función no modifica los atributos de las etiquetas que se permitan mediante allowable_tags
, incluyendo los atributos style
y onmouseover
que un usuario malicioso puede abusar al postear texto que se mostrará a otros usuarios.
Nota:
Los nombres de etiquetas en de la entrada HTML que sean mayores que 1023 bytes de longitud, serán tratados como no válidos, independientemente del parámetro
allowable_tags
.