简体   繁体   English

PHP:创建自定义filter_var()常量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM