Despite the documentation for 'type', you can specify multiple types by doing:
$test = filter_input(INPUT_GET | INPUT_POST, 'test');
This was tested in 5.2.3.
When both are set it appears to return the value defined first by variables_order (php.ini).
This trick does not seem to work in filter_input_array though. Neither function supports INPUT_REQUEST at the moment.
filter_input
(PHP 5 >= 5.2.0, PECL filter:0.11.0)
filter_input — Obtem a específica variável externa pelo nome e opcionalmente a filtra
Descrição
Parâmetros
- type
-
Um dos INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, INPUT_ENV, INPUT_SESSION (não implementado ainda) e INPUT_REQUEST (não implementado ainda).
- variable_name
-
Nome da variável a ser obtida.
- filter
-
Filtro a ser aplicado. O padrão é FILTER_DEFAULT.
- options
-
Array associativo de opções ou disjunção com operação binário dos flags. Se o filtro aceita opções, flags podem ser providas no campo "flags" da array.
Valor Retornado
Valor da requisitada variável em caso de sucesso, FALSE se o filtro falhar, ou NULL se o parâmetro variable_name é um variável não definida. Se a flag FILTER_NULL_ON_FAILURE é usada, ela retorna FALSE se a variável não é definida e NULL se o filtro falhar.
Exemplos
Exemplo #1 Um exemplo da filter_input()
<?php
$search_html = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_SPECIAL_CHARS);
$search_url = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_ENCODED);
echo "You have searched for $search_html.\n";
echo "<a href='?search=$search_url'>Search again.</a>";
?>
O exemplo acima irá imprimir algo similar a:
You have searched for Me & son. <a href='?search=Me%20%26%20son'>Search again.</a>
filter_input
02-Jan-2008 11:30
10-Dec-2007 12:49
If you want to use the callback filter with filter_input, you need to do something like:
$args = array ('options' => 'mycallbackfunction');
$foobar = filter_input(INPUT_POST,'postedvariable',FILTER_CALLBACK,$args);
23-Aug-2007 02:10
FastCGI seems to cause strange side-effects with unexpected null values when using INPUT_SERVER and INPUT_ENV with this function. You can use this code to see if it affects your server:
<?php
var_dump($_SERVER);
foreach ( array_keys($_SERVER) as $b ) {
var_dump($b, filter_input(INPUT_SERVER, $b));
}
echo '<hr>';
var_dump($_ENV);
foreach ( array_keys($_ENV) as $b ) {
var_dump($b, filter_input(INPUT_ENV, $b));
}
?>
If you want to be on the safe side, using the superglobal $_SERVER and $_ENV variables will always work. You can still use the filter_* functions for Get/Post/Cookie without a problem, which is the important part!
