我正在验证一个表单,其中某些字段必须采用特定格式,有些字段必须填写...所以我使用类似
的内容 $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',它们可以是任何东西,但不应该是空的。当然我可以分开检查,但我想在一个地方进行所有验证。我的问题是: 是否有过滤器或标志来检查变量是否为空?
答案 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)