在某处提到了PHP函数 filter_var 使用的正则表达式吗?
答案 0 :(得分:0)
即使您知道要查找的内容,源代码也可能难以遍历。我已经链接了下面定义filter_var
工作方式的文件。
在https://github.com/php/php-src/blob/master/ext/filter/filter.c顶部附近,您应该能够看到filter_list
数组,该数组将PHP过滤器常量与其相应的过滤函数相匹配。 filter_var
是在此文件中定义的,但我们现在可以忽略它。
过滤器本身都在https://github.com/php/php-src/blob/master/ext/filter/logical_filters.c中定义。
您可能会注意到,并非所有过滤器都使用正则表达式。确实,乍一看,我发现使用任何正则表达式模式的唯一一个就是php_filter_validate_email
。其他人似乎具有使他们有效运行所必需的替代逻辑,并且不需要正则表达式来过滤其内容。
我上面的解释已简化为回答问题。我建议您在可能的情况下将filter_var
与适当的标志一起使用,而不要尝试反向工程或重新发明轮子,因为这涉及到附加的逻辑,这会使您的代码简单得多。
答案 1 :(得分:-1)
是的,它们主要有4种类型:
Validate filters
Sanitize filters
Other filters
Filter flags
更多信息: