对于前面为零的数字,PHP filter_validate_int

时间:2014-04-18 21:58:09

标签: php filter-input

我想使用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)

1 个答案:

答案 0 :(得分:2)

嗯......你可以在这里尝试另一个过滤器 - 我可能会尝试FILTER_VALIDATE_REGEXP。也许是这样的:

$mins = filter_input(INPUT_POST, 'hour', FILTER_VALIDATE_REGEXP, ['options' => [
    'regexp' => '/\d{1,2}/']
]);

在这里添加正则表达式\d{1,2}作为示例,显然您可能希望在此处更好地定义。或者,您可以使用FILTER_CALLBACK并定义一个回调,您可以在其中检查您的值是否为int并明确在您所需的数值范围内。