САМОУЧИТЕЛЬ PHP 4



         

Пример


Напоследок рассмотрим пример применения описанных выше функций. Предположим, в некотором текстовом файле хранится список подписчиков, каждая строка которого оформлена в следующем формате:

Имя_подписчика|адрес|timestamp_подписки|кодировка_письма

Напишем сценарий, который будет посылать каждому подписчику из этой простейшей базы данных "личное" письмо с самыми последними новостями сайта. Предположим для простоты, что эти новости в программе уже сохранены в массиве $News.

Для начала создадим шаблон письма (листинг32.3):

Листинг 32.3. Шаблон "личного" письма: mail.txt

Content-type: text/plain

From: Система рассылки <subscribe@ourserver.ru>

To: <?=$User['name']?>.

Subject: Свежие новости

Content-type: text/plain

~StartOfMail

Уважаемый <?=$User['name']?>!

Вы подписались на наш лист рассылки <?=date("d.m.Y",$User['time'])?>.

Предлагаем Вашему вниманию последние новости.

---------------------------------------------------------------

<?foreach($News as $k=>$v) {?>

<?=WordWrap($v,60)?>.

<?}?>

Как видим, шаблон практически ничем не отличается от небольшого сценария на PHP. Он получает данные из переменных $User (данные пользователя) и $News (блоки новостей), которые должны устанавливаться запускающей программой. Вскоре мы рассмотрим процедуру более подробно, а пока обратите внимание на некоторые моменты при написании этого шаблона.

r    Мы указали заголовок Content-type сразу в двух местах шаблона — в начале и конце. В силу рассуждений, приведенных в главе 20, это необходимо для того, чтобы помочь некоторым "недогадливым" почтовым программам в определении кодировки письма.

r    Заметьте, что в конце заголовка To стоит точка.  Зачем она нужна? Дело в том, что закрывающий тэг PHP ?>, если он занимает последние символы строки, никогда не генерирует знака перевода строки \n. Это, видимо, сделано для того, чтобы уменьшить количество пустых строк в страницах, которые создает интерпретатор. В нашем случае отсутствие разделителя может сильно помешать,




Содержание  Назад  Вперед