filter_var или пользовательская функция для проверки электронной почты в php - PullRequest
5 голосов
/ 30 июля 2010

Какое решение лучше, используя встроенную проверку filter_var('email', FILTER_VALIDATE_EMAIL) или пользовательскую функцию?

Спасибо!

Ответы [ 5 ]

3 голосов
/ 30 июля 2010

Пользовательская проверка дает вам больше контроля над тем, как далеко вы хотите пойти с этим. То, что является и не является действительным, так как адрес электронной почты является более сложным, чем вы думаете, и в большинстве случаев лучше быть слишком слабым с этим, чем слишком строгим. В конце концов, синтаксически действительный адрес электронной почты не гарантирует, что учетная запись действительно существует, не говоря уже о том, что она активно используется. Что-то вроде: он должен содержать один @, хотя бы одну точку после @, хотя бы один символ перед @ и ни один из недопустимых символов, вероятно, достаточно хорош в большинстве случаев.

2 голосов
/ 30 июля 2010

PHP filter_var может быть удовлетворительным для большинства приложений, но если вы хотите сравнить производительность и достоверность, посмотрите на этот сайт http://www.linuxjournal.com/article/9585, чтобы понять, что означает соответствие RFC 2822.

2 голосов
/ 30 июля 2010

Фильтр var для электронной почты удаляет все символы, кроме букв , цифр и !#$%&'*+-/=?^_`{|}~@.[]. Теперь вам решать, хотите ли вы пройти эту фильтрацию или создать собственное решение.

А вот отличная статья об этом:

Проверка входных данных: использование filter_var () над регулярными выражениями

1 голос
/ 15 марта 2011

Вы можете использовать мою бесплатную функцию PHP is_email() для проверки адресов. Это доступно здесь .

Это гарантирует, что адрес полностью соответствует RFC 5321. При желании он также может проверить, действительно ли существует домен.

Вы не должны полагаться на средство проверки, чтобы сообщить вам, существует ли адрес электронной почты пользователя на самом деле: некоторые интернет-провайдеры выдают несоответствующие адреса своим пользователям, особенно в странах, которые не используют латинский алфавит. Больше в моем эссе о проверке электронной почты здесь: http://isemail.info/about.

0 голосов
/ 30 июля 2010

Я нашел это, пока гуглил, Надеюсь, это лучше тебя объясняет

http://www.addedbytes.com/code/email-address-validation/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...