strip_tags
(PHP 4, PHP 5, PHP 7, PHP 8)
strip_tags — Retira as tags HTML e PHP de uma string
Descrição
Esta função tenta retornar uma string com todos os bytes nulos e tags HTML e PHP removidas
da string
informada. Usa a mesma máquina de estados de remoção
de tags que a função fgetss().
Parâmetros
string
-
A string de entrada.
allowed_tags
-
Pode-se utilizar o segundo parâmetro, que é opcional, para indicar tags que não devam ser retiradas. Podem ser informadas como string, ou a partir do PHP 7.4.0, como array. Refira-se ao exemplo abaixo sobre o formato deste parâmetro.
Note:
Comentários HTML e tags PHP também são retirados. Isto não pode ser modificado com
allowed_tags
.Note:
Tags XHTML com auto-fechamento são ignoradas e apenas tags sem auto-fechamento devem ser usadas em
allowed_tags
. Por exemplo, para permitir tanto<br>
quanto<br/>
, deve-se usar:<?php strip_tags($input, '<br>'); ?>
Valor Retornado
Retorna a string modificada.
Registro de Alterações
Versão | Descrição |
---|---|
8.0.0 |
allowed_tags agora pode ser nulo.
|
7.4.0 |
O parâmetro allowed_tags agora alternativamente aceita um array.
|
Exemplos
Example #1 Exemplo de strip_tags()
<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";
// Allow <p> and <a>
echo strip_tags($text, '<p><a>');
// A partir do PHP 7.4.0 a linha acima pode ser escrita como:
// echo strip_tags($text, ['p', 'a']);
?>
O exemplo acima produzirá:
Test paragraph. Other text <p>Test paragraph.</p> <a href="#fragment">Other text</a>
Notas
Esta função não deve ser usada para evitar ataques XSS. Use funções mais apropriadas como htmlspecialchars() ou outros meios dependendo do contexto da saída.
Como strip_tags() não valida realmente o HTML, tags parciais ou quebradas podem resultar na remoção de mais texto e dados que o esperado.
Esta função não modifica nenhum dos atributos das tags que forem permitidas
usando allowed_tags
, incluindo os atributos
style
e onmouseover
que um usuário malicioso pode abusar ao enviar texto que será
mostrado a outros usuários.
Note:
Nomes de tags no HTML de entrada que forem maiores que 1023 bytes em comprimento serão tratados como se fossem inválidos, independente, do parâmetro
allowed_tags
.