2014-02-18 61 views
0

我确认在某些领域必须是特定格式的表格,有的只是需要填补。所以我使用类似如何使用filter_input_array()检查变量是否为空?

 $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这就需要特定的格式,但我也有字段'标题'和'身体',可以是任何东西,但不应该是空的。当然,我可以单独检查它,但我想在一个地方进行所有验证。我的问题是: 是否有过滤器,或检查变量是否为空的标志?

回答

0

有一个PHP函数来检查空变量

empty (mixed $var) 

你可以看看:this

+0

它根本没有回答这个问题。 OP想知道如何使用filter_input_array()而不直接访问超全局$ _POST,$ _GET等数组(可能会提示)。 – Sk8erPeter

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' 
) 
+0

是的,这也发生在我身上,但它看起来......不自然。好吧,它看起来像我不得不滚动它。 – dKab

+0

看到我更新的答案 – Manu

相关问题