Приднестровская поддержка XOOPS
.Лучший способ изучить работу с классами — использовать их. Рассмотрим популярную библиотеку, разработанную Мануэлем Лемосом (Manuel Lemos). Она позволяет выполнять проверку электронного адреса. Сначала нужно загрузить этот класс по адресу: www.phpclasses.org/browse/file/28.html и сохранить в файле email_.validation.php. Класс Мануэля, кроме проверки почтового адреса, проверяет существование домена. После этого он соединяется с удаленным почтовым сервером, чтобы убедиться в существовании почтового ящика.
В сценарии email_validation.php определяется класс email_validation_class. Первое, что нужно сделать, — создать экземпляр объекта, который выполняет проверку с именем $validator:
$validator = new email_validation_class;
Можно задать нужные свойства для нового класса. Некоторые нужны для корректной работы класса, а остальные позволяют изменять стандартное поведение.
Для каждого объекта нужно установить свойства. Это название ящика и имя домена реального почтового адреса, от имени которого выполняется проверка. Для этих свойств нельзя задать стандартные значения, их нужно установить самому, как показано ниже:
$validator->localuser = "chris";
$validator->localhost = "lightwood.net";
Необязательное свойство timeout задает максимальное количество секунд на ожидание соединения с удаленным почтовым сервером. Установка свойства debug позволяет увидеть на экране процесс соединения с удаленным сервером и узнать, какие запросы выполняет сценарий во время проверки. Выражение ниже устанавливает время ожидания 10 секунд и включает режим отладки:
$validator->timeout = 10;
$validator->debug = TRUE;
Полный список свойств настройки для объекта проверки приводится в табл. 10.1.
Таблица 10.1. Свойства класса email_validation_class
Свойство | Описание |
timeout | Задает максимальное количество секунд ожидания соединения с удаленным почтовым сервером |
data_timeout | Задает максимальное количество секунд для обмена данными с почтовым сервером. Если задан ноль, то используется значение timeout |
localuser | Задает пользовательскую часть адреса электронной почты, от имени которого выполняется проверка |
localhost | Задает имя домена адреса электронной почты, от имени которого выполняется проверка |
debug | Активизирует режим вывода на экран всего процесса соединения с удаленным сервером |
html_debug | Задает опцию вывода сообщений из режима от ладки в виде HTML |
Методы в классе email_validation_class в основном закрытые, к ним нельзя обращаться напрямую. Но внутренний код составляет завершенный набор функций. Рассмотрев содержимое email_validation.php, можно увидеть определение функций, таких как Tokenize, GetLine и VerifyResultLines. Но они совершенно бесполезны за пределами класса, в котором определены.
В объекте есть только один открытый метод под названием ValidateEmailBox, который и выполняет нужную проверку. При вызове он устанавливает в виде строки почтовый адрес, который нужно проверить. Ниже показан пример вызова ValidateEmailBox:
$email = "chris@datasnake.co.uk";
if ($validator->ValidateEmailBox($email)) {
echo "$email является корректным почтовым адресом";
}
else {
echo "$email не прошел проверки";
}
Метод ValidateEmailBox возвращает значение, которое показывает результат проверки. Если включить режим отладки с помощью атрибута debug, кроме вывода из сценария, можно увидеть примерно следующее:
Resolving host name "mail.datasnake.co.uk"...
Conneting to host address "217,158.68.125"...
Connected.
S 220 mail.datasnake.co.uk ESMTP
C HELO lightwood.net
S 250 mail.datasnake.co.uk
C MAIL FROM: <chris@lightwood.net>
S 250 ok
C RCPT TO: <chris@datasnake.co.uk>
S 250 ok
C DATA
S 254 go ahead
This host states that the address is valid.
Disconnected.
Отправитель | Нити |
---|
10 пользователь(ей) активно (5 пользователь(ей) просматривают Инструкции)
Участников: 0 Гостей: 10 далее... |