示例有效的电子邮件地址:
“这是一个有效的地址”@ example.com
PHP代码:
<?php
header('Content-Type: text/plain');
$email = '"this is a valid address"@example.com';
$checked = filter_var($email, FILTER_VALIDATE_EMAIL);
var_dump($email, $checked);
在一台服务器上输出:(PHP Version 5.2.6):
string(37)“”这是一个有效的地址“@ example.com”
string(37)“”这是一个有效的地址“@ example.com”
phpinfo()
:
Input Validation and Filtering enabled
Revision $Revision: 1.52.2.42 $
Directive Local Value Master Value
filter.default unsafe_raw unsafe_raw
filter.default_flags no value no value
另一台服务器上的输出(PHP Version 5.3.3):
string(37)“”这是一个有效的地址“@ example.com”
布尔(假)
phpinfo()
:
Input Validation and Filtering enabled
Revision $Revision: 298196 $
Directive Local Value Master Value
filter.default unsafe_raw unsafe_raw
filter.default_flags no value no value
我在the documentation中看不到任何暗示这已经改变的内容,所以也许是其他一些配置设置。
答案 0 :(得分:6)
正如您在http://3v4l.org/vKONS上看到的过滤器FILTER_VALIDATE_EMAIL
的用法不一致!
string(37) ""this is a valid address"@example.com"
bool(false)
和5.2.1 - 5.2.13,5.3.0 - 5.3.2
string(37) ""this is a valid address"@example.com"
string(37) ""this is a valid address"@example.com"
值得注意的是,它适用于5.2.0但不适用于5.2.1-5.2.13,然后再适用于5.2.14 !!!
Btw 3v4l.org是检查所有可用PHP版本中此类行为更改的绝佳资源。
several bugs open包含术语FILTER_VALIDATE_EMAIL,但似乎没有一个符合您的错误类型。您可以将其添加到PHP bugtracker ...