Курс "Язык программирования PHP" - Нина Савельева
Шрифт:
Интервал:
Закладка:
require, как и include, при использовании внутри условных блоков нужно заключать в фигурные скобки.
Решение задачи
И наконец, вернемся к задаче, сформулированной в начале лекции. Мы хотим создать программу, которую можно было бы использовать для отправки писем (или просто для их генерации) с приглашениями на различные мероприятия множеству пользователей. В предыдущей лекции уже рассматривался подобный случай. Сейчас мы вынесем всю информацию о людях и событиях в отдельный файл data.php и напишем программу, не зависящую (ну, может, совсем чуть-чуть зависящую) от этой информации и ее структуры. В этом случае для того, чтобы, например, расширить список адресатов, не нужно будет изменять скрипт, генерирующий приглашения. Кроме того, можно будет использовать информацию о людях и событиях в других скриптах. В самом скрипте, генерирующем приглашения letters.php, мы использовали условные операторы, циклы, require и другие изученные ранее конструкции.
<?php
define("SIGN","С уважением, Вася");
// пусть наша подпись
// будет константой
// информация о событиях
$events = array(
"f" => "день открытых дверей",
"o" => "открытие выставки",
"p" => "бал выпускников");
// имеющаяся информация о людях
// (имя и электронный адрес)
$people = array(
"ivan" => array(
"name" => "Иван Иванович",
"email"=>"[email protected]"),
"pit" => array(
"name" => "Петр Петрович",
"email" => "[email protected]"),
"semen" => array(
"name" => "Семен Семенович"));
// кто куда приглашается
$who_where["ivan"] = "o" ;
// Иван – на выставку
$who_where["pit"] = "p";
// Петр – на бал
?>
<?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); */
}
}
?>
Заключение
Итак, мы завершили изучение управляющих конструкций языка PHP. Мы старались привести самое основное и не углубляться в различные нюансы тех или иных конструкций. Подробную информацию можно найти в руководстве по PHP.
Обработка запросов с помощью PHP
Основы клиент-серверных технологий
В самом начале курса мы уже говорили о том, что PHP – это скриптовый язык, обрабатываемый сервером. Сейчас мы хотим уточнить, что же такое сервер, какие функции он выполняет и какие вообще бывают серверы. Если речь идет о сервере, невольно всплывает в памяти понятие клиента. Все потому, что эти два понятия неразрывно связаны. Объединяет их компьютерная архитектура клиент-сервер. Обычно, когда говорят «сервер», имеют в виду сервер в архитектуре клиент-сервер, а когда говорят «клиент» – имеют в виду клиент в этой же архитектуре. Так что же это за архитектура? Суть ее в том, чтобы разделить функции между двумя подсистемами: клиентом, который отправляет запрос на выполнение каких-либо действий, и сервером, который выполняет этот запрос. Взаимодействие между клиентом и сервером происходит посредством стандартных специальных протоколов, таких как TCP/IP и z39.50. На самом деле протоколов очень много, они различаются по уровням. Мы рассмотрим только протокол прикладного уровня HTTP (чуть позднее), поскольку для решения наших программистских задач нужен только он. А пока вернемся к клиент-серверной архитектуре и разберемся, что же такое клиент и что такое сервер.
Сервер представляет собой набор программ, которые контролируют выполнение различных процессов. Соответственно, этот набор программ установлен на каком-то компьютере. Часто компьютер, на котором установлен сервер, и называют сервером. Основная функция компьютера-сервера – по запросу клиента запустить какой-либо определенный процесс и отправить клиенту результаты его работы.
Клиентом называют любой процесс, который пользуется услугами сервера. Клиентом может быть как пользователь, так и программа. Основная задача клиента – выполнение приложения и осуществление связи с сервером, когда этого требует приложение. То есть клиент должен предоставлять пользователю интерфейс для работы с приложением, реализовывать логику его работы и при необходимости отправлять задания серверу.
Взаимодействие между клиентом и сервером начинается по инициативе клиента. Клиент запрашивает вид обслуживания, устанавливает сеанс, получает нужные ему результаты и сообщает об окончании работы.
Услугами одного сервера чаще всего пользуется несколько клиентов одновременно. Поэтому каждый сервер должен иметь достаточно большую производительность и обеспечивать безопасность данных.
Логичнее всего устанавливать сервер на компьютере, входящем в какую-либо сеть, локальную или глобальную. Однако можно устанавливать сервер и на отдельно стоящий компьютер (тогда он будет являться одновременно и клиентом и сервером).
Существует множество типов серверов. Вот лишь некоторые из них.
Такой сервер специально приспособлен к обработке изображений, хранению видеоматериалов, видеоигр и т.п. В связи с этим компьютер, на котором установлен видеосервер, должен иметь высокую производительность и большую память.
- Поисковый сервер предназначен для поиска информации в Internet.
- Почтовый сервер предоставляет услуги в ответ на запросы, присланные по электронной почте.
- Сервер WWW предназначен для работы в Internet.
- Сервер баз данных выполняет обработку запросов к базам данных.
- Сервер защиты данных предназначен для обеспечения безопасности данных (содержит, например, средства для идентификации паролей).
- Сервер приложений предназначен для выполнения прикладных процессов. С одной стороны взаимодействует с клиентами, получая задания, а с другой – работает с базами данных, подбирая необходимые для обработки данные.
- Сервер удаленного доступа обеспечивает коллективный удаленный доступ к данным.
- Файловый сервер обеспечивает функционирование распределенных ресурсов, предоставляет услуги поиска, хранения, архивирования данных и возможность одновременного доступа к ним нескольких пользователей.
Обычно на компьютере-сервере работает сразу несколько программ-серверов. Одна занимается электронной почтой, другая распределением файлов, третья предоставляет web-страницы.
Из всех типов серверов нас в основном интересует сервер WWW. Часто его называют web-сервером, http-сервером или даже просто сервером. Что представляет собой web-сервер? Во-первых, это хранилище информационных ресурсов. Во-вторых, эти ресурсы хранятся и предоставляются пользователям в соответствии со стандартами Internet (такими, как протокол передачи данных HTTP). Как предоставляются данные в соответствии с этим протоколом, мы рассмотрим чуть позже. Работа с документами web-сервера осуществляется при помощи браузера (например, IE, Opera или Mozilla), который отсылает серверу запросы, созданные в соответствии с протоколом HTTP. В процессе выполнения задания сервер может связываться с другими серверами.
Далее в ходе лекции, говоря «сервер», мы будем подразумевать web-сервер.
В качестве примеров web-серверов можно привести сервер Apache группы Apache, Internet Information Server (IIS) компании Microsoft, SunOne фирмы Sun Microsystems,WebLogic фирмы BEA Systems, IAS (Inprise Application Server) фирмы Borland, WebSphere фирмы IBM, OAS (Oracle Application Server).