PHP过滤器

我试图使用filter_input_array()来验证一些发布数据。 尽管我尽了最大的努力,但函数似乎在$ filter数组内部传递null值(传递条件),而不是按照我的预期验证并返回false。

这是一个代码实现的例子:

$filters = array(
  'phone' => FILTER_VALIDATE_INT,
  'email' => FILTER_VALIDATE_EMAIL
);

if(filter_input_array(INPUT_POST, $filters)){
  //filters are validated insert to database
} else{
  //filters are invalid return to form
}

不管是哪种坏数据(例如phone ='a',email ='{} /!〜'),我输入的数组仍然返回,而不是返回false和失败条件的函数。 任何帮助将不胜感激。


为了让代码保持您想要的样子,请尝试使用此方法

      $filters = array(
     'phone' => FILTER_VALIDATE_INT,
        'email' => FILTER_VALIDATE_EMAIL
        );
       if(!in_array(null || false, filter_input_array(INPUT_POST, $filters))) 
       //enter into the db
      else 
      //Validation failled

如果任何过滤器失败, filter_input_array不会返回false。 相反,如果过滤器失败,它将返回一个数组,其中相应的项目设置为false(如果未设置,则返回null。


filter_input_array函数将结果作为编辑输入数组返回,如果失败则返回FALSE,如果未设置每个输入,则返回NULL。 所以你应该得到一个变量的结果。 另一件事是首先检查虚假。 你需要这样的东西

$filters = array(
  'phone' => FILTER_VALIDATE_INT,
  'email' => FILTER_VALIDATE_EMAIL
);

if(false === ($res = filter_input_array(INPUT_POST, $filters))){
  /* Not valid */
} elseif(null == $res) {
  /* Something is not set */
} else {
  /* Everything is alright  
   * You can use $res variable here.
   */
}

看看php手册:php.net手册

链接地址: http://www.djcxy.com/p/92699.html

上一篇: PHP filter

下一篇: Regular Expression to check multi