我想使用PHP的filter_input和filter_VALIDATE_INT来验证时间(以小时和分钟为单位)。问题是,当时间像03:07 时,该函数返回false
$hours_range = array (
'options' => array (
'min_range' => 0,
'max_range' => 23
)
);
$minutes_range = array (
'options' => array (
'min_range' => 0,
'max_range' => 59
)
);
filter_input(INPUT_POST, 'hour', FILTER_VALIDATE_INT, $hours_range)
filter_input(INPUT_POST, 'minute', FILTER_VALIDATE_INT, $minutes_range)
嗯。。。你可以在这里尝试另一个过滤器——我可能会尝试FILTER_VALIDATE_REGEXP
。也许类似于:
$mins = filter_input(INPUT_POST, 'hour', FILTER_VALIDATE_REGEXP, ['options' => [
'regexp' => '/d{1,2}/']
]);
仅在此处添加regex d{1,2}
作为示例,显然您可能希望在此处定义更好的内容。或者,您可以使用FILTER_CALLBACK
并定义一个回调,在该回调中您可以检查您的值是否为int
并且明确地在所需的数字范围内。