Опубликован: 01.03.2005 | Доступ: свободный | Студентов: 33895 / 4520 | Оценка: 4.31 / 4.06 | Длительность: 16:41:00
ISBN: 978-5-9556-0026-0
Лекция 3:

Управляющие конструкции

< Лекция 2 || Лекция 3: 123456 || Лекция 4 >

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

И наконец, вернемся к задаче, сформулированной в начале лекции. Мы хотим создать программу, которую можно было бы использовать для отправки писем (или просто для их генерации) с приглашениями на различные мероприятия множеству пользователей. В предыдущей лекции уже рассматривался подобный случай. Сейчас мы вынесем всю информацию о людях и событиях в отдельный файл 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";        
    // Петр – на бал
$who_where["semen"] = "f"; 
    // Семен – на день открытых дверей
?>
Листинг 3.12. data.php
<?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

Заключение

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

< Лекция 2 || Лекция 3: 123456 || Лекция 4 >
Дарья Федотова
Дарья Федотова
Сергей Березовский
Сергей Березовский

В рамках проф. переподготовки по программе "Программирование"

Есть курсы, которые я уже прошел. Но войдя в курс я вижу, что они не зачтены (Язык Ассемблера и архитектура ЭВМ, Программирование на С++ для профессионалов). Это как?

Алексей Ласкин
Алексей Ласкин
Россия, Москва, НИБ
Камариддин Уринов
Камариддин Уринов
Таджикистан, Гиссар