English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básico PHP

Tutorial Avançado PHP

PHP & MySQL

Manual de Referência PHP

Filtros no PHP

Neste tutorial, você aprenderá como limpar e validar entrada do usuário no PHP.

Usar filtro para limpar e validar dados

Limpar e validar entrada do usuário

Para usar a extensão de filtro para validar dados, você precisa usar a função filter_var() do PHP. A sintaxe básica dessa função pode ser dada da seguinte forma:

filter_var(variável, filtro, opções)

Esta função possui três parâmetros, os dois últimos são opcionais. O primeiro parâmetro é o valor a ser filtrado, o segundo parâmetro é o ID do filtro a ser aplicado e o terceiro parâmetro é um array de opções relacionadas ao filtro. Vamos ver como ele funciona.

Limpar string

O exemplo a seguir limpará a string removendo todos os marcadores HTML:

<?php
//comentário do usuário do exemplo
$comment = "<h1>Ei! Hoje você se sentiu bem?</h1>";
 
//Limpar e imprimir a string de comentário
$sanitizedComment = filter_var($comment, FILTER_SANITIZE_STRING);
echo $sanitizedComment;
?>
testar e ver‹/›

A saída do exemplo acima é mostrada a seguir:

Ei! Hoje você se sentiu bem?

verificar valor inteiro

O exemplo a seguir verificará se o valor é um inteiro válido.

<?php
// exemplo de valor inteiro
$int = 20;
 
// verificar valor inteiro
se(filter_var($int, FILTER_VALIDATE_INT)){
    echo "<b>$int</b> É um inteiro válido";
} else {
    echo "<b>$int</b> Não é um inteiro válido";
}
?>
testar e ver‹/›

No exemplo acima, se o valor da variável \$int for 0, o código de exemplo mostrará uma mensagem de inteiro inválido. Para resolver esse problema, você precisa testar explicitamente o valor 0, conforme mostrado a seguir:

<?php
//exemplo de valor inteiro
\$int = 0;
 
// Validar valor inteiro de exemplo
if(filter_var(\$int, FILTER_VALIDATE_INT) === 0 || filter_var(\$int, FILTER_VALIDATE_INT)){
    echo "The <b>\$int</b> É um inteiro válido";
} else {
    echo "The <b>\$int</b> Não é um inteiro válido";
}
?>
testar e ver‹/›

Validar endereço IP

O exemplo a seguir verificará se o valor é um endereço IP válido.

<?php
// endereço IP
\$ip = "172.16.254.1";
 
// Exemplo de validação de endereço IP
if(filter_var(\$ip, FILTER_VALIDATE_IP)){
    echo "<b>\$ip</b> É um endereço IP válido";
} else {
    echo "<b>\$ip</b> Não é um endereço IP válido";
}
?>
testar e ver‹/›

Você pode usar separadamente FILTER_FLAG_IPV4ou FILTER_FLAG_IPV6sinalizar ainda mais o IPV4ou IPV6 O endereço IP deve ser validado. Este é um exemplo:

<?php
// endereço IP
\$ip = "172.16.254.1";
 
// Exemplo de validação de endereço IP
if(filter_var(\$ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
    echo "<b>\$ip</b> É um IPV6endereço;
} else {
    echo "<b>\$ip</b> Não é um IPV6endereço;
}
?>
testar e ver‹/›

Limpar e validar endereços de e-mail

O exemplo a seguir mostrará como limpar e validar endereços de e-mail.

<?php
// endereço de e-mail
\$email = "someone@@example.com";
 
//Remover todos os caracteres ilegais do e-mail
\$sanitizedEmail = filter_var(\$email, FILTER_SANITIZE_EMAIL);
 
//Validar endereço de e-mail
if(\$email == \$sanitizedEmail && filter_var(\$email, FILTER_VALIDATE_EMAIL)){
    echo "\$email é um endereço de e-mail válido";
} else {
    echo "\$email não é um endereço de e-mail válido";
}
?>
testar e ver‹/›

Nota:O filtro FILTER_SANITIZE_EMAIL remove todos os caracteres inválidos, exceto letras, números e a string de endereço de e-mail fornecida!*+-=?^_`{|}~@.[]。

limpar e verificar URL

O exemplo a seguir mostrará como limpar e verificar uma URL.

<?php
//  exemplo de url
$url = "http:://www.example.com"
 
//remover todos os caracteres ilegais do URL
$sanitizedUrl = filter_var($url, FILTER_SANITIZE_URL);
 
// verificar URL do site
if($url == $sanitizedUrl && filter_var($url, FILTER_VALIDATE_URL)){
    echo "$url é um site válido";
} else {
    echo "$url não é um site válido";
}
?>
testar e ver‹/›

Atenção:O filtro FILTER_SANITIZE_URL remove todos os caracteres inválidos, exceto letras, números e caracteres específicos da string de URL fornecida$-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=.

Você também pode usar o flag para verificar se a URL contém a string de consulta FILTER_FLAG_QUERY_REQUIRED, como no exemplo a seguir:

<?php
//url
$url = "http://www.example.com?topic=filters";
 
//verificar URL do site para obter a string de consulta
if(filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED)){
    echo "<b>$url</b> Contém a string de consulta ";
} else {
    echo "<b>$url</b> Não contém a string de consulta ";
}
?>
testar e ver‹/›

por favor, consulteURL HTMLtutorial para entenderURLos diferentes componentes.

verificar inteiro no intervalo

A seguir, um exemplo verificará se o valor fornecido é um inteiro e se está entre 0 e10no intervalo de 0.

<?php
// exemplo de valor inteiro
$int = 75;
 
//verificar valor inteiro do exemplo
if(filter_var($int, FILTER_VALIDATE_INT, array("options" => array("min_range" => 0,"max_range" => 100)))){
    echo "<b>$int</b> Está entre 0 e100 no intervalo ";
} else {
    echo "<b>$int</b> Não está entre 0 e100 no intervalo ";
}
?>
testar e ver‹/›