PHP FILTER_VALIDATE_EMAIL在不同的计算机上返回不同的值

时间:2014-03-12 09:10:31

标签: php filter-var

我测试了电子邮件字段的表单验证器并输入了长电子邮件:

 $email = 'dfgjfdjglkdfjglkjdfgldfjglkdfjgkldfjlkgjdlkfjglkdfjkgdklfjgldkfjgldlfjgkldfjglkdfjglkdfklgjlkdfjkgkdfjlkgfjldkgkldjfgkljdfkgjlkdfgljdlf@mail.com';

在本地机器函数filter_var上返回带有电子邮件的字符串:

 $email = 'dfgjfdjglkdfjglkjdfgldfjglkdfjgkldfjlkgjdlkfjglkdfjkgdklfjgldkfjgldlfjgkldfjglkdfjglkdfklgjlkdfjkgkdfjlkgfjldkgkldjfgkljdfkgjlkdfgljdlf@mail.com';

 die(var_dump(filter_var($email, FILTER_VALIDATE_EMAIL)));

但是在远程服务器上,此代码返回FALSE。

本地机器上的PHP版本 - 5.3.2-1ubuntu4.22

在远程机器上 - 5.3.28

这个版本的PHP之间是否更改了filter_var函数?为什么我使用相同的代码接收不同的值?

2 个答案:

答案 0 :(得分:1)

自从5.3.2以来,

FILTER_VALIDATE_EMAIL已经更新了几次(你真的应该更新你的BTW版本)。最值得注意的更新是this bug-fix,当输入/地址验证太长时会导致段错误。
除此修复(记录两次),FILTER_VALIDATE_EMAIL ?返回误报。虽然,AFAIKT,这不太可能是你的困境的原因 其他一些更改包括涉及>1=$ sudo apt-get install php5-dev //optionally $ sudo apt-get install php5-dev --install-suggests 等特殊字符的错误。
无论如何,要查看自PHP5.3.2以来的所有更改,只需在他们的网站上查看Rasmus Lerdof ...

再次:更新您的本地版本,它变得过时了。鉴于您正在运行ubuntu:

$ sudo apt-get install php5-dev --install-recommends --install suggests

如果你正在运行铸币:

sudo apt-get update

在两个发行版上,最好先运行{{1}},当然......

答案 1 :(得分:0)

PHP's changelog上,您可以看到您提到的版本之间至少有两个问题(搜索FILTER_VALIDATE_EMAIL)。这可能是进行更多搜索的起点。

那么更新本地PHP版本呢?你正在使用的那个很老......