filter_var 与 preg_match

can*_*eed 5 php regex

大家早

我正在将我正在开发的网站转换为与最新版本的 PHP 兼容,因此我将检查并用未折旧的等效项替换所有 ereg 实例。不过,有人告诉我 PHP 中有一个方便的内置函数,称为 filter_var。

我的问题是,使用 filter_var 而不是 preg_match 有意义吗?比如选择其中一种是否会带来性能提升或任何其他好处,如果有的话,它们是什么?

Phi*_*ord 3

filter_var \xe2\x80\x94 使用指定的过滤器过滤变量
\n preg_match \xe2\x80\x94 执行正则表达式匹配

\n

我想 use 可以使用 filter_var 来过滤变量,但作为 preg_match 的替代品,我认为从 ereg 升级不是一个好主意,因为 filter_var 不使用正则表达式,并且您必须重写很多功能/逻辑去做这个。

\n

  • 只是澄清一下:PHP 的 **`filter_var()` 函数确实在内部使用正则表达式来执行验证**。请参阅 PHP 源代码来验证这一点:https://github.com/php/php-src/blob/master/ext/filter/ological_filters.c#L529 (4认同)