[英]PHP: Create custom filter_var() constants
How would i go about creating custom filters for use in PHP filter_var()
. 我将如何创建用于PHP
filter_var()
自定义过滤器。
An example: 一个例子:
Right now i have a function to validate a date: 现在我有一个验证日期的功能:
private function validateDate($date){
$d = DateTime::createFromFormat('Y-m-d', $date);
return $d && $d->format('Y-m-d') == $date;
}
function was copied from this answer or php.net 函数是从此答案或php.net复制的
I want to be able to call a constant like FILTER_VALIDATE_DATE
and have it checked by the above code. 我希望能够调用诸如
FILTER_VALIDATE_DATE
类的FILTER_VALIDATE_DATE
并通过上面的代码对其进行检查。
Any help is appreciated. 任何帮助表示赞赏。
PHP没有为您注册自定义过滤器的方法,因此您不能简单地传递一个新的常量。最好的办法是使用FILTER_CALLBACK
并将回调作为第三个参数传递,就像这样:
$valid = filter_var($date, FILTER_CALLBACK, ['options' => 'validateDate']);
You should use filter callback functions. 您应该使用过滤器回调函数。
$date = "2015-06-30";
echo filter_input( $date, FILTER_CALLBACK, array('options' => 'validateDate') );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.