2014-02-18 63 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

相關問題