filter input-PHP filter_validate_int用于前面为零的数字


filter input - PHP filter_validate_int for numbers with preceding zero

我想使用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并且明确地在所需的数字范围内。