Насколько последователен FILTER_VALIDATE_EMAIL?
Пример действительного адреса электронной почты:
"это действительный адрес" @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 5.3.3):
string (37) "это действительный адрес" @example.com"
BOOL (ложь)
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
Я ничего не вижу в документации, чтобы предположить, что это изменилось, поэтому, возможно, это другой параметр конфигурации.
Ответы
Ответ 1
Как вы можете видеть на http://3v4l.org/vKONS использование фильтра FILTER_VALIDATE_EMAIL
несовместимо!
http://3v4l.org/vKONS выходы для PHP 5.2.0, 5.2.14 - 5.2.17, 5.3.3 - 5.3.18, 5.4. 0 - 5.4.8
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.
Есть несколько ошибок открываются, включая термин FILTER_VALIDATE_EMAIL, но ни один из них не соответствует вашей ошибке. Вы можете добавить его в PHP bugtracker...