我测试了电子邮件字段的表单验证器并输入了长电子邮件:
$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函数?为什么我使用相同的代码接收不同的值?
答案 0 :(得分:1)
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版本呢?你正在使用的那个很老......