strip_tags

(PHP 4, PHP 5, PHP 7, PHP 8)

strip_tagsElimina las etiquetas HTML y PHP de un string

Descripción

strip_tags(string $string, array|string|null $allowed_tags = null): string

strip_tags() intenta devolver el string string después de eliminar todos los bytes nulos, todas las etiquetas PHP y HTML del código. Genera alertas si las etiquetas están incompletas o son erróneas. Utiliza el mismo motor de búsqueda que fgetss().

Parámetros

string

El string de entrada.

allowed_tags

Puede utilizarse este argumento opcional para especificar las etiquetas que no deben ser eliminadas. Pueden ser proporcionadas como chaîne de caractères o, a partir de PHP 7.4.0, como tableau. Consúltese los ejemplos a continuación para el formato de este argumento.

Nota:

Los comentarios HTML y PHP también son eliminados. Este comportamiento no puede ser modificado con el argumento allowed_tags.

Nota:

Las etiquetas XHTML auto-cerradas son ignoradas y solo las etiquetas que no son auto-cerradas deben ser utilizadas en el string allowed_tags. Por ejemplo, para permitir tanto <br> como <br/>, se debe utilizar:

<?php
strip_tags
($input, '<br>');
?>

Valores devueltos

Devuelve el string escapado.

Historial de cambios

Versión Descripción
8.0.0 allowed_tags ahora puede ser nullable.
7.4.0 allowed_tags ahora acepta un tableau.

Ejemplos

Ejemplo #1 Ejemplo con 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>');

// a partir de PHP 7.4.0 la línea anterior puede ser escrita como:
// 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>

Notas

Advertencia

Esta función no debería ser utilizada para prevenir ataques XSS. Utilizar funciones más apropiadas como htmlspecialchars() u otros métodos según el contexto de la salida.

Advertencia

Como strip_tags() no valida el HTML, las etiquetas parciales o rotas pueden conducir a la eliminación de más texto/datos de lo deseado.

Advertencia

strip_tags() no modifica los atributos de las etiquetas que se autorizan mediante el argumento allowed_tags, incluyendo los atributos style y onmouseover, que usuarios malintencionados pueden utilizar.

Nota:

Los nombres de las etiquetas en el HTML de entrada que son superiores a 1023 bytes de longitud serán tratados como inválidos, según el argumento allowed_tags.

Ver también