php的filter过滤器,和其他语言的过滤器并不一样
比如,java的过滤器,是对url进行过滤,可以拦截访问。
而php的过滤器,实际是一种对变量的过滤,一旦给某个变量加入过滤器,那么在调用返回该变量时,会对该变量进行拦截处理。可以对一个变量,多次增加过滤器,那么就形成了过滤链,过滤器是有顺序的,先加入的会先拦截。
如果你希望像java那样拦截访问url,必须在每个php页面上定义拦截逻辑,比如每个页面判断session中是否存在user等,而非php页面是无法拦截访问的,要么在nginx等服务器中设置,php代码无法直接实现拦截用户访问资源。
如需过滤变量,请使用下面的过滤器函数之一:
- filter_var() – 通过一个指定的过滤器来过滤单一的变量
- filter_var_array() – 通过相同的或不同的过滤器来过滤多个变量
- filter_input – 获取一个输入变量,并对它进行过滤
- filter_input_array – 获取多个输入变量,并通过相同的或不同的过滤器对它们进行过滤
在下面的实例中,我们用 filter_var() 函数验证了一个整数:
<?php
$int = 123;
if(!filter_var($int, FILTER_VALIDATE_INT))
{
echo("Integer is not valid");
}
else
{
echo("Integer is valid");
}
?>
上面的代码使用了 “FILTER_VALIDATE_INT” 过滤器来过滤变量。由于这个整数是合法的,因此上面的代码将输出:”Integer is valid”。
如果我们尝试使用一个非整数的变量(比如 “123abc”),则将输出:”Integer is not valid”。
本篇完,还有疑问?留下评论吧