如何使用filter_input_array()检查变量是否为空?

时间:2014-02-18 12:42:45

标签: php validation input

我正在验证一个表单,其中某些字段必须采用特定格式,有些字段必须填写...所以我使用类似

的内容
        $trusty = filter_input_array(INPUT_POST , array(
            'status'=>array(
                'filter'=>FILTER_VALIDATE_INT,
                'options'=>array('min_range' => 1, 'max_range' => 3, 'default'=>2)
            ),
            'tags'=>array(
                'filter'=>FILTER_CALLBACK,
                'options'=>function($value) {
                   if (mb_strpos($value, ",") === false) {
                       return trim($value);
                   } else {
                       $tags = explode(",", $value);
                       $tags = array_map(function($val) {
                           return trim($val);
                       }, $tags);
                       return $tags;
                   }
                },
            )   
        ));

验证需要特定格式的thoose,但我也有字段'title'和'body',它们可以是任何东西,但不应该是空的。当然我可以分开检查,但我想在一个地方进行所有验证。我的问题是: 是否有过滤器或标志来检查变量是否为空?

2 个答案:

答案 0 :(得分:2)

也许是这样的:

$trusty = filter_input_array(INPUT_POST , array(
        'status'=>array(
            'filter'=>FILTER_VALIDATE_INT,
            'options'=>array('min_range' => 1, 'max_range' => 3, 'default'=>2)
        ),
        'tags'=>array(
            'filter'=>FILTER_CALLBACK,
            'options'=>function($value) {
               if (mb_strpos($value, ",") === false) {
                   return trim($value);
               } else {
                   $tags = explode(",", $value);
                   $tags = array_map(function($val) {
                       return trim($val);
                   }, $tags);
                   return $tags;
               }
            },
        ) ,
        'title'=>array(
            'filter'=>FILTER_CALLBACK,
            'options'=>function($value) {
                return empty($value);
            }
        ) 
    ));

这也应该有效:

'title'=>array(
    'filter'=>FILTER_CALLBACK,
    'options'=>'empty'
) 

答案 1 :(得分:0)

php中有一个函数来检查空变量

    empty ( mixed $var )

你可以看看: this