当前位置: 首页 > 阅读正文

php过滤器filter

2021年9月9日   34 次   719字数

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”。

本篇完,还有疑问?留下评论吧

发表评论