<?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("Age must be a number between 1 and 120.<br />"); 
} 
elseif(!$result["email"]) 
{ 
echo("E-Mail is not valid.<br />"); 
} 
else 
{ 
echo("User input is valid"); 
} 
?> 
例子解释:
上面的例子有三个通过 "GET" 方法传送的输入变量 (name, age and email)
设置一个数组,其中包含了输入变量的名称,以及用于指定的输入变量的过滤器
调用 filter_input_array 函数,参数包括 GET 输入变量及刚才设置的数组
检测 $result 变量中的 "age" 和 "email" 变量是否有非法的输入。(如果存在非法输入,)
filter_input_array() 函数的第二个参数可以是数组或单一过滤器的 ID。
如果该参数是单一过滤器的 ID,那么这个指定的过滤器会过滤输入数组中所有的值。
如果该参数是一个数组,那么此数组必须遵循下面的规则:
必须是一个关联数组,其中包含的输入变量是数组的键(比如 "age" 输入变量)
此数组的值必须是过滤器的 ID ,或者是规定了过滤器、标志以及选项的数组
使用 Filter Callback
通过使用 FILTER_CALLBACK 过滤器,可以调用自定义的函数,把它作为一个过滤器来使用。这样,我们就拥有了数据过滤的完全控制权。
您可以创建自己的自定义函数,也可以使用已有的 PHP 函数。
规定您准备用到过滤器的函数,与规定选项的方法相同。
在下面的例子中,我们使用了一个自定义的函数把所有 "_" 转换为空格:
复制代码 代码如下:
 
<?php 
function convertSpace($string) 
{ 
return str_replace("_", " ", $string); 
} 
$string = "Peter_is_a_great_guy!"; 
echo filter_var($string, FILTER_CALLBACK, 
array("options"=>"convertSpace")); 
?> 
以上代码的结果是这样的:
Peter is a great guy!例子解释:
上面的例子把所有 "_" 转换成空格:
创建一个把 "_" 替换为空格的函数
调用 filter_var() 函数,它的参数是 FILTER_CALLBACK 过滤器以及包含我们的函数的数组
1
您可能感兴趣的文章:
