Интернет-Университет Информационных Технологий: бесплатное дистанционное образование компьютерным дисциплинам
  Лекции
Язык программирования PHP
1.   Введение в PHP
2.   Основы синтаксиса
3.   Управляющие конструкции
4.   Обработка запросов с помощью PHP
5.   Функции в PHP
6.   Объекты и классы в PHP
7.   Работа с массивами данных
8.   Работа со строками
9.   Работа с файловой системой
10.   Базы данных и СУБД. Введение в S...
11.   Взаимодействие PHP и MySQL
12.   Авторизация доступа с помощью се...
13.   Регулярные выражения
14.   Взаимодействие PHP и XML
15.   Использование шаблонов в PHP
    Экзамен
    Сдать экзамен экстерном
    Литература
    Предметный указатель
    Примеры

Язык программирования PHP
3. Лекция: Управляющие конструкции
Страницы: « | 1 | 2 | 3 | 4 | 5 | 6 | вопросы | » | учебники | для печати и PDA
  Если Вы заметили ошибку - сообщите нам.  

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

И наконец, вернемся к задаче, сформулированной в начале лекции. Мы хотим создать программу, которую можно было бы использовать для отправки писем (или просто для их генерации) с приглашениями на различные мероприятия множеству пользователей. В предыдущей лекции уже рассматривался подобный случай. Сейчас мы вынесем всю информацию о людях и событиях в отдельный файл 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)

Заключение

Итак, мы завершили изучение управляющих конструкций языка PHP. Мы старались привести самое основное и не углубляться в различные нюансы тех или иных конструкций. Подробную информацию можно найти в руководстве по PHP.

Перейти к вопросам »
  Если Вы заметили ошибку - сообщите нам.  
Страницы: « | 1 | 2 | 3 | 4 | 5 | 6 | вопросы | » | учебники | для печати и PDA
Курсы | Учебные программы | Учебники | Новости | Форум | Помощь

Телефон: (495) 253-9312, 253-9313, факс: (495) 253-9310, email: info@intuit.ru
© 2003-2006, INTUIT.ru::Интернет-Университет Информационных Технологий - дистанционное образование