Язык программирования PHP



         

Решение задачи


И наконец, вернемся к задаче, сформулированной в начале лекции. Мы хотим создать программу, которую можно было бы использовать для отправки писем (или просто для их генерации) с приглашениями на различные мероприятия множеству пользователей. В предыдущей лекции уже рассматривался подобный случай. Сейчас мы вынесем всю информацию о людях и событиях в отдельный файл data.php и напишем программу, не зависящую (ну, может, совсем чуть-чуть зависящую) от этой информации и ее структуры. В этом случае для того, чтобы, например, расширить список адресатов, не нужно будет изменять скрипт, генерирующий приглашения. Кроме того, можно будет использовать информацию о людях и событиях в других скриптах. В самом скрипте, генерирующем приглашения letters.php, мы использовали условные операторы, циклы, require и другие изученные ранее конструкции.

<?php define("SIGN","С уважением, Вася"); // пусть наша подпись // будет константой

// информация о событиях $events = array( "f" => "день открытых дверей", "o" => "открытие выставки", "p" => "бал выпускников"); // имеющаяся информация о людях // (имя и электронный адрес) $people = array( "ivan" => array( "name" => "Иван Иванович", "email"=>"user_ivan@intuit.ru"), "pit" => array( "name" => "Петр Петрович", "email" => "user_petr@intuit.ru"), "semen" => array( "name" => "Семен Семенович")); // кто куда приглашается $who_where["ivan"] = "o" ; // Иван – на выставку $who_where["pit"] = "p"; // Петр – на бал ?>

Листинг 3.12. data.php (html, txt)

<?php require("data.php"); // включаем файл с данными о событиях foreach($people as $key => $man_info){ // для каждого человека делаем следующее: $event_key = $who_where[$key]; // получаем событие, // на которое он приглашается if ($event_key<>""){ foreach($man_info as $key1 => $info){ // получаем имя и email // конкретного человека if ($key1=="name") $str = "Уважаемый (ая), $info"; if ($key1=="email") $email = $info; } // составляем приглашение $str .= "<br>Приглашаем Вас на ". $events[$event_key]; switch ($event_key){ // в зависимости от события // добавляем какую-нибудь строчку case "f": $str .= "<br>Подтвердите Ваше участие по телефону!"; break; case "o": $str .= "<br>Приходите за 15 минут до открытия!"; break; case "p": $str .= "<br>Не забудьте подарок :-)"; break; } $str .= "<br>" . SIGN . "<hr>"; // добавляем подпись

echo $str; // вводим приглашение на экран

/* если у вас настроена отправка почты с помощью PHP, то письмо можно отправить командой mail($email,"Letter",$str); */ } } ?>

Листинг 3.13. letters.php (html, txt)




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