O melhor tutorial filtro de PHP em 2024. Neste tutorial você pode aprender O que é um filtro de PHP?,Por que usar um filtro?,Funções e Filtros,Validação e Saneantes,Opções e bandeiras,entrada de validação,Exemplos explicou,entrada de purificação,Exemplos explicou,Uma pluralidade de filtro de entrada,Exemplos explicou,Use filtro de retorno de chamada,Exemplos explicou,
filtro de PHP é usada para validar e filtrar dados a partir de fontes inseguras, como a entrada do usuário.
filtro de PHP é usada para validar e filtrar dados a partir de fontes inseguras.
Testar, validar e entrada do usuário filtro ou de dados personalizado é uma parte importante de qualquer aplicação Web.
extensão filtro de PHP é projetado para tornar os dados de filtragem mais fácil e rápido.
Quase todos os aplicativos da Web são dependentes de insumos externos. Esses dados geralmente vêm de usuários ou outras aplicações (como os serviços web). Usando filtros, você pode garantir que as aplicações obter o tipo de entrada correta.
Você deve sempre filtragem de dados externos!
A filtragem de entrada é das questões mais importantes de segurança do aplicativo.
O que são dados externos?
Para filtrar uma variável, use uma das seguintes funções de filtro:
No exemplo a seguir, usamos filter_var () função valida um inteiro:
<?php $int = 123; if(!filter_var($int, FILTER_VALIDATE_INT)) { echo("不是一个合法的整数"); } else { echo("是个合法的整数"); } ?>
O código acima usa o filtro "FILTER_VALIDATE_INT" para filtrar a variável. Desde o inteiro é legítimo, para que a saída do código acima:
Se tentarmos usar uma variável não inteiro (como "123abc"), é a saída: "Integer não é válido".
Para obter uma lista completa das funções e filtros, visite o nosso Manual do PHP filtros de referência .
Há dois tipos de filtros:
Validando filtros:
Saneantes filtros:
Opções e bandeiras são usadas para adicionar opções de filtragem adicionais para os filtros especificados.
Filtros diferentes têm diferentes opções e bandeiras.
No exemplo a seguir, usamos filter_var () e "min_range" e opção "max_range" para verificar um inteiro:
<?php $var=300; $int_options = array( "options"=>array ( "min_range"=>0, "max_range"=>256 ) ); if(!filter_var($var, FILTER_VALIDATE_INT, $int_options)) { echo("不是一个合法的整数"); } else { echo("是个合法的整数"); } ?>
Como o código acima, como a opção relevante deve ser colocado em um array chamado "opções" em. Se um sinalizador não é necessário dentro da matriz.
Uma vez que o número inteiro é "300", que não está dentro do intervalo especificado, a saída do código acima será:
不是一个合法的整数
Para obter uma lista completa das funções e filtros, visite o nosso Manual do PHP filtros de referência . Você pode ver as opções disponíveis para cada filtro e bandeiras.
Vamos tentar validar a entrada de um formulário.
Nós precisamos fazer a primeira coisa é para confirmar que os dados de entrada que estamos procurando.
Em seguida, usamos a função filter_input () para filtrar os dados inseridos.
No exemplo abaixo, a variável de entrada "email" é passado para a página PHP:
<?php if(!filter_has_var(INPUT_GET, "email")) { echo("没有 email 参数"); } else { if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL)) { echo "不是一个合法的 E-Mail"; } else { echo "是一个合法的 E-Mail"; } } ?>
Exemplos dos resultados acima referidos foram como se segue:
O exemplo acima tem uma variável de entrada por (e-mail) "GET" método de transferência:
Vamos tentar esclarecer vindo de uma URL formulário.
Primeiro de tudo, temos de confirmar que os dados de entrada que estamos procurando.
Então nós higienizar função de entrada filter_input dados ().
No exemplo abaixo, a variável de entrada "url" é passado para a página PHP:
<?php if(!filter_has_var(INPUT_GET, "url")) { echo("没有 url 参数"); } else { $url = filter_input(INPUT_GET, "url", FILTER_SANITIZE_URL); echo $url; } ?>
Exemplos do acima por uma variável de entrada (url) método "get" enviada:
Se a variável de entrada é uma cadeia como este: "http://www.ruaanoob.com/", a variável $ url depois da purificação é a seguinte:
Formas, muitas vezes consistem em vários campos de entrada. Para evitar função filter_var ou filter_input chamado repetidamente, podemos usar o filter_var_array ou função filter_input_array.
Neste caso, usamos filter_input_array () para filtrar três variáveis GET. Recebeu variáveis GET é um nome, uma idade e um endereço de e-mail:
<?php $filters = array ( "name" => array ( "filter"=>FILTER_SANITIZE_STRING ), "age" => array ( "filter"=>FILTER_VALIDATE_INT, "options"=>array ( "min_range"=>1, "max_range"=>120 ) ), "email"=> FILTER_VALIDATE_EMAIL ); $result = filter_input_array(INPUT_GET, $filters); if (!$result["age"]) { echo("年龄必须在 1 到 120 之间。<br>"); } elseif(!$result["email"]) { echo("E-Mail 不合法<br>"); } else { echo("输入正确"); } ?>
O exemplo acima tem três variáveis de entrada (nome, idade e e-mail) transmitidos através do método "GET":
filter_input_array () O segundo argumento para a função podem ser uma matriz ou um único ID de filtro.
Se o parâmetro for um único ID de filtro, em seguida, o filtro especificado irá filtrar todos os valores da matriz de entrada.
Se este parâmetro é uma matriz, a matriz deve respeitar as seguintes regras:
Ao usar filtros FILTER_CALLBACK, você pode chamar uma função personalizada, usá-lo como um filtro para usar. Assim, temos controle total sobre a filtragem de dados.
Você pode criar sua própria função personalizada, ou você pode usar um PHP funções existentes.
Você estará pronto para usar a função de filtro, de acordo com as opções disposições especificadas método pré-determinados. Em uma matriz associativa com o nome de "opções".
No exemplo a seguir, usamos uma função personalizada de todos "_" convertidos em espaços:
<?php function convertSpace($string) { return str_replace("_", ".", $string); } $string = "www_w3big_com!"; echo filter_var($string, FILTER_CALLBACK, array("options"=>"convertSpace")); ?>
O resultado do código acima é o seguinte:
Os exemplos acima todos "_" para "".: