РНР 5 для "чайников" [Джанет Валейд] (pdf) читать онлайн

-  РНР 5 для "чайников"  (пер. А. Ю. Шелестов) (и.с. Для «чайников») 43.96 Мб, 317с. скачать: (pdf) - (pdf+fbd)  читать: (полностью) - (постранично) - Джанет Валейд

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

PHP 5
АЛЯ

"ЧАЙНИКОВ"Джанет Валейд

ДИАЛЕКТИКА
Москва • Санкт-Петербург • Киев
2005

ББК 32.973.26-018.2.75
В15
УДК 681.3.07
Компьютерное издательство "Диалектика"
Зав. редакцией С.Н. Тригуб
Перевод с английского и редакция канд. техн. наук А.Ю. Шелестова
По общим вопросам обращайтесь в издательство "Диалектика" по адресу:
info@dialektika.com, http://www.dialektika.com
115419, Москва, а/я 783; 03150, Киев, а/я 152

Валейд, Джанет
В15 РНР 5 для "чайников".: Пер. с англ. — М.: Издательский дом "Вильяме", 2005. — 320 с.: ил. —
Парал. тит. англ.
ISBN 5-8459-0851-5 (рус.)
Данная книга является введением в область Web-программирования на языке РНР 5.
С ее помощью можно быстро написать сценарий для Web, обеспечить взаимодействие
с файлами и базами данных, а также решить другие задачи. Материал книги также позв злит избежать многих распространенных ошибок. Описание основных возможностей язы­
ка сопровождается примерами.
В книге можно также найти рекомендации по установке модуля РНР 5 для Web и для раб >
ты в командной строке, а также установке и настройке популярных Web-серверов Apache и Ш!.
Данная книга будет полезна для начинающих разработчиков, а также всех тех, кто и 1тересуется вопросами программирования для Web.
ББК 32.973.26-018.2/5

Все названия программных продуктов являются зарегистрированными торговыми марками соответст­
вующих фирм.
Никакая часть настоящего издания ни в каких целях не может быть воспроизведена в какой бы то ни бы Ю
форме и какими бы то ни было средствами, будь то электронные или механические, включая фотокопирова­
ние и запись на магнитный носитель, если на это нет письменного разрешения издательства JOHN
WJLEY&Sons, Inc.
Copyright © 2005 by Dialektika Computer Publishing.
Original English language edition Copyright © 2004 by Wiley Publishing, Inc.
Allrightsreserved including therightof reproduction in whole or in part in any form. This translation published
by arrangement with Wiley Publishing, Inc.
For Dummies and Dummies Man are trademarks under exclusive license to Wiley Publishing, Inc. Used by
permission.
ISBN 5-8459-0851-5 (рус.)
ISBN 0-7645-4166-8 (англ.)

© Компьютерное изд-во "Диалектика", 2005
© Wiley Publishing, Inc., 2004

Оглавление
Введение

16

ЧАСТЬ I. ПОЗНАКОМЬТЕСЬ С ЯЗЫКОМ СЦЕНАРИЕВ РНР

19

Глава 1. Знакомство с РНР

21

Глава 2. Настройка программного окружения

29

Глава 3. Создание первого сценария РНР

43

ЧАСТЬ II. ПЕРЕМЕННЫЕ И ДАННЫЕ

55

Глава 4. Использование переменных в сценариях РНР

57

Глава 5. Работа с данными

72

Глава 6. Объединение данных с помощью массивов

89

ЧАСТЬ III. ОСНОВЫ ПРОГРАММИРОВАНИЯ НА РНР

ш

Глава 7. Управление ходом выполнения сценария

113

Глава 8. Повторное использование кода в сценариях РНР

134

Глава 9. Объектно-ориентированное программирование на РНР

148

ЧАСТЬ IV. СТАНДАРТНЫЕ РНР-ПРИЛОЖЕНИЯ

165

Глава 10. Основы создания Web-приложений

167

Глава 11. Другие виды Web-приложений

188

Глава 12. Хранение данных с использованием РНР

207

Глава 13. РНР и операционная система

231

Глава 14. Расширения РНР

250

ЧАСТЬ V. ВЕЛИКОЛЕПНЫЕ ДЕСЯТКИ

263

Глава 15. Десять правил, которых следует придерживаться при разработке
сценариев на РНР

265

Глава 16. Десять жизненно необходимых Web-ресурсов

270

ЧАСТЬ VI. ПРИЛОЖЕНИЯ

273

Приложение А. Установка РНР

275

Приложение Б. Встроенные функции РНР

293

Предметный указатель

310

Содержание
Введение
Об этой книге
Как использовать эту книгу
Очевидные предположения
Структура книги
Пиктограммы, используемые в книге

16

ЧАСТЬ I. ПОЗНАКОМЬТЕСЬ С ЯЗЫКОМ СЦЕНАРИЕВ РНР

19

Глава 1. Знакомство с РНР
Особенности языка РНР
Различные применения РНР
Использование РНР для Web-приложений
Использование РНР для взаимодействия с базами данных
Использование РНР для взаимодействия с файловой системой
Использование РНР для запуска системных команд
Принципы функционирования РНР
РНР как универсальный язык
РНР для Web
Отслеживайте изменения
РНР 5
Предыдущие версии РНР

:>л


Глава 2. Настройка программного окружения
Настройка Web-окружения
Использование существующей Web-среды
Выбор хостинговой компании
Настройка собственного Web-окружения
Тестирование РНР
Настройка РНР для написания сценариев общего назначения
Настройка РНР
Использование специальных средств создания РНР-сценариев
Редакторы для написания программ
Интегрированная среда разработки

29

Глава 3. Создание первого сценария РНР
Написание операторов РНР
Написание сценариев
Вставка операторов РНР в HTML-код
Использование РНР независимо от Web
Создание первого сценария РНР
Детальнее об операторах вывода
Обработка операторов вывода РНР
Использование специальных символов в операторах вывода
Документирование сценариев

43
43
44
45
46
48
49
:»0
:>1
:>2

L6
16
17
17
18

:>2
:>2

:>з

:»4

ш
:>4


:»5
:>б

27
21

29



34
:i6
:\9
:\9
40
40
41

ЧАСТЬ II. ПЕРЕМЕННЫЕ И ДАННЫЕ

55

Глава 4. Использование переменных в сценариях РНР
Имена переменных
Присваивание и отображение значений переменных
Создание переменных
Отображение значений переменных
Создание первого сценария с переменными
Более подробно об операторах вывода
Использование переменных переменных
Удаление переменных
Работа с константами
Создание констант
Когда использовать константы
Отображение значений констант
Использование встроенных констант
Обработка сообщений об ошибках
Изменение уровня проверки ошибок для Web-узла
Изменение уровня проверки ошибок в сценарии
Запись сообщений в файл журнала
Расширенная обработка ошибок
Глава 5. Работа с данными
Типы данных
Присваивание типов данных
Приведение типов
Работа с числами
Выполнение математических операций
Форматирование чисел для вывода
Работа со строками символов
Использование в строках специальных символов
Сравнение строк в одинарных и двойных кавычках
Сокрытие символов
Объединение текстовых строк
Манипуляция строками
Форматирование текстовых строк
Использование даты и времени
Форматирование даты
Хранение значений в формате timestamp
Глава 6. Объединение данных с помощью массивов
Создание массивов и работа с ними
Создание массивов
Вывод элементов массивов
Изменение массивов
Удаление значений из массива
Сортировка массивов
Использование массивов в выражениях
Использование массивов в операторе echo
Использование массивов в функции list

57
57
58
58
59
60
61
62
63
63
63
64
66
66
67
67
68
69
70
72
72
72
73
74
74
76
78
79
79
80
81
81
82
85
86
87
89
89
89
91
92
92
93
94
95
95

Содержание

7

Перемещение по массивам
Перебор элементов массива вручную
Использование оператора foreach для прохода по массиву
Определение размера массива
Преобразование массивов в текстовые строки (и наоборот)
Преобразование переменных в массивы (и наоборот)
Разбиение и слияние массивов
Сравнение массивов
Другие операции с массивами
Суммирование массивов
Удаление повторяющихся элементов
Перестановка ключей и значений в массиве
Многомерные массивы
Создание многомерных массивов
Вывод многомерных массивов
Использование многомерных массивов в выражениях
Проход по многомерному массиву
Массивы, встроенные в РНР
Использование суперглобальных массивов
Использование массивов $_SERVER и $_ENV
Использование переменных $argv и $argc

!»6
96
(
>7
98
98
'19
11)0
101
102
102
ЮЗ
103
103
104
105
105
106
107
107
108
109

ЧАСТЬ III. ОСНОВЫ ПРОГРАММИРОВАНИЯ НА РНР

и

Глава 7. Управление ходом выполнения сценария
Изменение порядка выполнения операторов в сценарии
Проверка условий
Использование операций сравнения
Проверка содержимого переменной
Использование регулярных выражений
Объединение условий
Использование условных операторов
Использование оператора if
Оператор switch
Повторение действий с помощью циклов
Цикл for
Цикл while
Цикл dcwhile
Избегайте бесконечных циклов
Прерывание циклов
Глава 8. Повторное использование кода в сценариях РНР
Включение кода в сценарий
Включение файлов
Размещение файлов включения
Установка путей для файлов включения
Создание повторно используемого кода (функции)
Определение функций
Использование переменных в функциях
Передача значений в функцию

1 [3
113
114
115
116
1L6
119
1: > 1
121
124
125
126
129
1:Ю
1)1
1.32
134
155
135
136
137
138
138
140
141

8

Содержание

Возвращаемое значение функции
Использование встроенных функций
Обработка ошибок

Глава 9. Объектно-ориентированное программирование на РНР
Введение в объектно-ориентированное программирование
Объекты и классы
Свойства
Методы
Наследование
Что отсутствует в объектно-ориентированной парадигме РНР 5
Разработка объектно-ориентированных программ
Выбор объектов
Выбор свойств и методов для каждого объекта
Создание и использование класса
Определение класса
Создание класса
Определение свойств
Использование переменной $this
Добавление методов
Создание конструктора
Собирая все вместе
Использование класса
Скрытые свойства и методы
Использование исключений
Копирование объектов
Удаление объектов

145
146
147
148
148
149
149
149
150
151
151
151
152
152
152
152
153
154
154
154
155
157
158
161
161
162

ЧАСТЬ IV. СТАНДАРТНЫЕ РНР-ПРИЛОЖЕНИЯ

165

Глава 10. Основы создания Web-приложений
Обеспечение безопасности Web-узла
Обеспечение безопасности компьютера, на котором установлен Web-узел
Ограничение доступа к информации
Осторожность при получении информации от пользователей
Использование безопасного Web-сервера
Отображение статических Web-страниц
Работа с HTML-формами
Получение информации от посетителей Web-узла
Получение информации
Проверка данных
Очистка данных
Глава 11. Другие виды Web-приложений
Независимость Web-страниц
Перемещение между страницами Web-узла
Вывод ссылок
Использование форм
Перемещение пользователей
Перемещение данных между страницами
Добавление информации к URL-адресу

167
167
168
168
169
169
170
170
171
177
179
186
188
188
188
189
189
190
191
191

Содержание

9

Передача информации с помощью данных cookie
Передача информации с помощью HTML-форм
Использование сеансов РНР
Создание сеансов для групп пользователей
Загрузка файлов
Использование форм для загрузки файлов
Получение информации о загружаемом файле
Перемещение файлов в требуемый каталог
Совмещая все вместе
Использование JavaScript и РНР
Добавление кода JavaScript в сценарий РНР
Использование переменных РНР в сценариях JavaScript
Глава 12. Хранение данных с использованием РНР
Использование текстовых файлов
Доступ к файлам
Запись в файл
Чтение файла
Обмен данными с другими программами
Работа с базами данных
Системы управления базами данных
Поддержка баз данных в РНР
Взаимодействие с базой данных
Использование РНР для взаимодействия с базами данных
Обработка ошибок
Собирая все вместе...
Использование расширения SQLite

193
194
195
200
200
200
201
202
202
205
205
206
207
208
209
210
211
213
216
216
2]8
220
221
225
227
229

Глава 13. РНР и операционная система
Управление файлами
Получение информации о файле
Копирование, переименование и удаление файлов
Организация файлов
Использование команд операционной системы
Использование одинарных кавычек
Использование функции system()
Использование функции ехес()
Использование функции passthru()
Вопросы безопасности
Использование протокола FTP
Подключение к серверу FTP
Получение содержимого каталога
Передача файлов с помощью протокола FTP
Другие функции для работы с протоколом FTP
Использование электронной почты
Настройка РНР для работы с электронной почтой
Отправка электронных сообщений
Отправка почтовых вложений

231
231
2 32
233
2 34
236
238
239
239
2 40
240
241
241
2 42
2 42
243
244
245
246
246

Глава 14. Расширения РНР
Основные расширения РНР
Стандартные расширения РНР

250
250
251

10

Содержание

Использование модуля PEAR
Где можно найти модуль PEAR
Установка модуля PEAR
Установка пакета PEAR
Использование пакетов PEAR

254
255
256
258
259

ЧАСТЬ V. ВЕЛИКОЛЕПНЫЕ ДЕСЯТКИ

263

Глава 15. Десять правил, которых следует придерживаться при разработке
сценариев на РНР
Отсутствие точки с запятой
Недостаточное количество знаков равенства
Опечатка в имени переменной
Отсутствие символа доллара
Ошибки, связанные с кавычками
Вывод невидимых символов
Нумерация элементов массива
Включение операторов РНР
Недостающая пара
Путаница с круглыми и фигурными скобками

265
265
266
266
266
266
267
267
268
268
269

Глава 16. Десять жизненно необходимых Web-ресурсов
Официальный Web-узел РНР
Списки рассылки РНР
Ядро Zend
Web-pecypc РНР Builder
Web-ресурс Black Beans
PHP для начинающих
Web-pecypc PHP Dev Center
Web-узел PHPMac .com
Редакторы РНР
Web-pecypc SourceForge.net
Бесплатные Web-хостинговые услуги
Web-узел автора настоящей книги

270
270
270
270
271
271
271
271
271
271
271
272
272

ЧАСТЬ VI. ПРИЛОЖЕНИЯ

273

Приложение А. Установка РНР
Установка модуля РНР в системах Unix/Linux
Перед установкой модуля РНР в системах Unix/Linux
Установка модуля РНР в системах Unix/Linux
Альтернативный метод установки вместе с сервером Apache
Установка модуля РНР в системе Мае
Перед установкой модуля РНР в системе Мае
Установка модуля РНР в системе Мае
Параметры установки для операционных систем Unix/Linux/Mac
Настройка сервера Apache и модуля РНР в системах Unix/Linux/Mac
Установка РНР в системе Windows
Автоматическая установка РНР CGI
Установка модуля РНР вручную
Настройка модуля РНР и Web-сервера в системе Windows

275
275
276
276
278
280
280
281
283
284
286
287
289
290

Содержание

11

Приложение Б. Встроенные функции РНР
Функции для работы с массивами
Функции для работы с датой и временем
Функции для работы с файловой системой
Функции для работы с протоколом HTTP и электронной почтой
Математические функции
Функции для работы с параметрами РНР
Строковые функции
Функции для работы с переменными

293
2* '3
297
297
3(12
3(12
3(14
305
308

Предметный указатель

3.0

12

Содержание

OJ atftftofie
Джанет Велейд (Janet Valade) — автор нескольких книг по языку РНР, а также некоторых
глав к книгам по системе Linux и Web-дизайну.
Джанет Велейд имеет двадцатилетний опыт общения с компьютером. Она работала Webдизайнером и Web-программистом в специализированной компьютерной компании, а до это­
го в течение нескольких лет была системным аналитиком в университете. Она руководила
развертыванием и использованием компьютерных ресурсов, разрабатывала архивы данных,
обеспечивала техническую поддержку сотрудников и студентов, написала множество техни­
ческих статей, разрабатывала и проводила семинары по различным техническим вопросам.

Лосвл/цение
Эта книга посвящается всем, кто найдет ее полезной.

'BUatoqafiHOCfHU
Хочется выразить благодарность всему сообществу разработчиков открытого кода. Без
них, отдавших время и талант делу своей жизни, язык РНР не развивался бы так бурно,
и мне было бы не о чем писать. Более того, я бы никогда не смогла самостоятельно осво­
ить РНР без списков рассылки, в которых опытные разработчики терпеливо отвечают на
глупые вопросы новичков. Многие идеи этой книги родились именно благодаря изучению
этих вопросов и ответов на них.

О/н изцсипельапва
Вы, читатель этой книги, и есть главный ее критик и комментатор. Мы ценим ваше мне­
ние и хотим знать, что было сделано нами правильно, что можно было сделать лучше и что
еще вы хотели бы увидеть изданным нами. Нам интересно услышать и любые другие замеча­
ния, которые вам хотелось бы высказать в наш адрес.
Мы ждем ваших комментариев и надеемся на них. Вы можете прислать нам бумажное или
электронное письмо, либо просто посетить наш Web-сервер и оставить свои замечания там.
Одним словом, любым удобным для вас способом дайте нам знать, нравится или нет вам эта книга,
а также выскажите свое мнение о том, как сделать наши книги более интересными для вас.
Посылая письмо или сообщение, не забудьте указать название книги и ее авторов, а также
ваш обратный адрес. Мы внимательно ознакомимся с вашим мнением и обязательно учтем
его при отборе и подготовке к изданию последующих книг. Наши координаты:
E-mail:

info@dialektika.com

WWW:

http://www.dialektika.com

Информация для писем из:
России:

115419, Москва, а/я 783

Украины:

03150, Киев, а/я 152

Введение
Раз вы держите в руках эту книгу, значит, вас интересуют сценарии РНР. Вероятно, ВА
хотите научиться программировать и слышали, что РНР — очень простой язык. Это действи­
тельно так. С языка РНР можно начинать изучение программирования.
Возможно, вы разрабатываете интерактивный Web-узел и в качестве языка хотите исполь­
зовать РНР. И здесь вы правы. С помощью этого языка вы сможете обеспечить очень эффек­
тивное взаимодействие с посетителями своего Web-узла.
Возможно, вам нужно в короткий срок разработать обычное приложение. Вы слышали,
что РНР освоить очень легко. Да, это так. При создании языка РНР ставилась отдельнгя
цель — обеспечить простоту его изучения.
А может, вы администрируете некоторую систему и надеетесь, что язык РНР поможет
обеспечить эффективную работу с файлами или обработку данных. Он действительно может
почти все. С его помощью можно даже написать электронное сообщение своему шефу
с предложением перейти к использованию РНР.

Обэ*пой книге
Эту книгу можно рассматривать как доступное введение в область программирования на
языке РНР: в ней рассматриваются основные вопросы программирования вообще и особен­
ности языка РНР в частности. Книга начинается с основ РНР. Сначала вы сможете опреде­
лить, нужно ли вам устанавливать РНР. (Детальные инструкции по установке РНР содержатся
в приложении А.) В книге описаны основные возможности языка РНР с примерами их ис­
пользования. Если у вас есть опыт программирования, вы можете пропустить этот раздел.
В книге описаны основные варианты использования РНР. Вы узнаете, как написать сценарий
для Web, взаимодействовать с файлами и базами данных, а также научитесь решать другие ти­
пичные задачи. Кроме того, в книге содержатся рекомендации по эффективному использованию
РНР и рассказывается, как избежать ошибок. Информация, содержащаяся в приложениях, по­
может новичкам и опытным программистам быстро написать много интересных приложений.

Как использовать эЩ книгу
Книга написана как справочник, а не как учебное пособие, поэтому вам не придется чи­
тать ее от корки до корки. Вы можете начать изучение книги с любого вопроса. Книга хорсшо структурирована, поэтому по оглавлению можно легко найти нужную главу. В каждо \
главе содержатся ссылки на другие главы, в которых можно найти информацию, связанную
с данным вопросом.
В книге содержится множество примеров кода на РНР, включающих как несколько строе,
так и целые программы. Операторы РНР в книге выделены следующим образом:
Это оператор сценария РНР
В тексте книги операторы РНР тоже выделяются специальным шрифтом, например, вот так
В примерах кода некоторые слова выделены курсивом. Они обычно описывают парамет­
ры, которые необходимо заменять реальными значениями. Например, в команде
echo ЧИСЛО!, чнсло2
выделенные курсивом параметры нужно заменить реальными числами. При использовании
этого оператора в сценарии он может иметь вид
echo 3, 127

Кроме того, примеры кода могут содержать многоточия; которые не нужно вводить
в сценарии. Они лишь означают, что в списке можно использовать любое количество пара­
метров. Например, если вам встретится строка
echo число!, число2, ...
в своем сценарии многоточие вводить не нужно, вместо него можно использовать реальные
параметры.

Очевидные nftec/положеяил
Надеюсь, вы достаточно много знаете о компьютерах, и вас не пугают такие термины, как
файл, каталог, путь, или другие основные понятия, связанные с операционной системой.
Предполагается, что вы умеете скопировать файл в нужный каталог.
Предполагается также, что вы умеете создавать файлы, редактировать их в редакторе,
удалять, копировать и перемещать.
Если вы хотите работать с РНР, то должны использовать операционную систему, которая
поддерживает этот язык. Операционная система должна быть сравнительно новой версии. На­
пример, Windows 95 является очень старой, как и Mac OS 9. Даже Windows 98 нельзя назвать но­
вой операционной системой, хотя некоторые специалисты запускают РНР под ее управлением.
Если вы планируете использовать язык РНР для создания Web-приложений, вам понадобит­
ся применять и язык HTML (HyperText Markup Language). Надеюсь, вы знакомы с этим языком.
Поэтому в книге не поясняются многочисленные примеры использования этого языка. Если вы
не знакомы с языком HTML, прочтите специализированную книгу, а затем попробуйте создать
простую Web-страницу. Если у вас совсем нет терпения, можно приступать к изучению РНР даже
без базовых знаний HTML, Из этой книги вы сможете почерпнуть все сведения, необходимые для
создания своего Web-приложения. Однако на всякий случай положите радом книгу по HTML.
Надеюсь, вам уже приходилось создавать хотя бы одну Web-страницу, а может быть, даже
статический Web-узел. Тогда вы должны знать, где нужно разместить Web-страницу, чтобы
она была доступна пользователям Web.
Книга не предполагает знания каких-либо языков программирования. Эта книга рассчита­
на на новичков, которые хотят научиться писать сценарии на языке РНР. Поэтому, если у вас
нет опыта программирования, не печальтесь. В книге вы найдете всю необходимую инфор­
мацию. Если же вы умеете программировать на другом языке, особенно на С, эта книга по­
может вам быстро освоить новый язык программирования.

Gnfiifiantjfia книги
Материал этой книги делится на шесть частей, в которых изложена вся необходимая ин­
формация о РНР, от основ этого языка до его приложений.

Часть I. "Познакомьтесь с языком сценариев РНР"
В этой части приводится обзор возможностей РНР и принципов его работы. Вы узнаете,
как настроить среду для использования языка РНР и как на нем написать первый сценарий.

Часть II. "Переменные и данные"
Переменные — основа языка РНР. В этой части речь идет о создании и использовании
переменных. Здесь рассказывается о типах данных и способах их обработки. Вы узнаете, как
создавать и использовать сложные переменные, получившие название массивов.
Введение

17

Часть III. "Основы программирования на РНР"
В этой части показано, как писать сценарии на языке РНР, а также изложены основы
объектно-ориентированного программирования на РНР.

Часть IV. "Стандартные РНР-приложения"
В этой части изложены приемы программирования на языке РНР, необходимые при соз­
дании типичных приложений. Вы узнаете, как писать сценарии для Web-узла, отображать
формы и обрабатывать их данные. Вы также научитесь использовать язык РНР для взаи со­
действия с базами данных и для выполнения системных задач, в том числе записи файлов на
жесткий диск и выполнения команд операционной системы.

Часть V. "Великолепные десятки"
В этой части содержатся полезные рекомендации о том, что следует делать при написании
сценариев РНР, а чего делать не нужно. Здесь же приводится список полезных Web-ресурсов,
связанных с использованием РНР.

Часть VI. "Приложения"
В этой части приводятся детальные рекомендации по установке РНР. В приложении Б со­
держится список функций РНР, которые могут оказаться полезными при создании сценариев РНР.

Лшапог/гамжи, используемые в книге
Для удобства работы с книгой в ней содержатся специальные пиктограммы, определяю­
щие различные типы информации.
Эта пиктограмма связана с дополнительной информацией по конкретному иопросу. Советы позволят сэкономить время и силы, поэтому на них стоит обра­
щать особое внимание.

Эта пиктограмма сопровождает информацию, которую желательно запомнить.

Обращайте особое внимание на предупреждения! В них описаны действия, кото­
рые нужно выполнить (или, наоборот, которые выполнять не следует) во избе* ание неприятностей.

Ъ^Ш^?-

18

Эта пиктограмма связана с технической информацией. Она может быть интерес­
ной и полезной, однако не является обязательной для понимания основного содержания книги.

Введете

Часть I

Познакомьтесь с языком
сценариев РНР

v

4w полный ЬолЪМ, (Члр»лин. Но ыы ^obtpwiHHO Hi
МОИ 00Л6ЛН

.

3 э/пой чаани.
рассматриваются основные возможности РНР. Дается опи­
сание этого языка, основных принципов его работы и назначения. После
этого описываются настройки РНР в вашем рабочем окружении и рас­
сматриваются различные способы доступа к интерпретатору РНР.
Далее предлагается описание процесса разработки на языке РНР. Рас­
сматривается создание первых сценариев и обсуждается несколько проых примеров.

Глава 1

Знакомство с РНР
в этой главе:
>
>
>

Обзор особенностей РНР
Описание работы РНР
РНР как открытое программное обеспечение

U

так, вы желаете познакомиться с языком РНР. Возможно, это ваш первый опыт
в программировании. И вы выбрали РНР по совету своего товарища, который сказал
вам, что язык РНР очень простой. Может быть, он и прав, поскольку РНР является одним из
самых легких для понимания языков программирования. И разработчики РНР постоянно
прилагают все усилия, чтобы этот язык оставался несложным в использовании.
Возможно, вы уже имеете опыт программирования на других языках. И вы решили изу­
чить РНР, поскольку он является наилучшим средством для создания новых Webприложений. Это решение заслуживает похвалы, так как РНР — это как раз то, что нужно для
создания динамических Web-приложений. Начать программировать на РНР очень легко. Бо­
лее того, РНР предоставляет ряд современных средств, которые будут полезны для опытных
программистов. Если вы знакомы с языком программирования С, то вы уже имеете неплохой
задел, поскольку РНР имеет аналогичный синтаксис.
В этой главе описывается РНР и рассказывается о том, что этот язык позволяет делать
и каким образом.

РНР является широко используемым открытым универсальным языком разработки сценари­
ев. Первоначально он был создан для разработки Web-узлов. Созданный Расмусом Лердофом
(Rasmus Lerdof), PHP фактически использовался как средство доя создания пользователями своих
Web-страниц (Personal Home Page — персональные домашние страницы). Однако РНР оказался
настолько полезным и популярным, что быстро стал полноценным языком программирования.
При этом он приобрел новое название — Hypertext Preprocessing, — которое отображает его
расширенные возможности по предварительной обработке Web-страниц перед их отображением.
РНР приобрел большую популярность благодаря следующим преимуществам.
/

Быстродействие Web-узлов. Поскольку код РНР встраивается в HTML-страницу,
время, необходимое для обработки и загрузки Web-страницы, невелико.
•S Открытость. РНР является доказательством того, что бесплатные обеды все
же существуют, и вы можете получить больше того, за что платите.
S Простота использования. Синтаксис РНР достаточно прост для понимания
и использования даже для непрограммистов. При этом РНР разработан таким
образом, чтобы быть легко встраиваемым в HTML-страницы.

•S Универсальность. PHP можно использовать под управлением разных опера­
ционных систем, включая Windows, Linux, Mac OS и большинство систем се­
мейства Unix.
•S Многосторонняя техническая поддержка. Вы можете посетить официаль­
ный Web-узел РНР (www.php.net), где предлагается обширный список тем
для обсуждения, покрывающий различные вопросы, такие как основы FHP,
РНР под Windows или базы данных и РНР. К тому же перечень тем для обсу­
ждений можно найти также по адресу news . php . n e t .
•S Безопасность. Если ваш сценарий РНР разработан правильно, то его про­
граммный код пользователи увидеть не смогут.
/ Настраиваемость. Открытость РНР позволяет программистам модифициро­
вать программное обеспечение, добавлять или изменять его функциошльность, необходимую для решения конкретных задач. РНР обеспечивает доста­
точный контроль над окружением, позволяя уменьшить вероятность ошибс к.

Различные применения PHJ*
РНР является универсальным средством разработки сценариев общего назначения. Сце­
нарии представляют собой компьютерные файлы, которые содержат написанные на языке
РНР инструкции, выполняющие определенные действия, такие как вывод на экран строки
"Привет" или сохранение некоторой информации в базе данных. Большинство сценариев
содержат последовательности инструкций, позволяющих решать задачи, начиная от разэаботки Web-страниц до навигации по файловой системе. Поскольку РНР создавался для W:b,
он обладает многими возможностями, которые как раз и предназначены для использования
в сценариях создания динамических Web-страниц. Возможно, в данный момент у вас возник­
нут трудности при использовании РНР для создания Web-страниц, однако его применеше
для других целей трудно переоценить.
РНР является очень популярным средством для разработки Web-узлов. Согласно инфор­
мации, размещенной на Web-узле РНР (www.php.net/usage.php), около 11 миллионов
доменов используют РНР. Даже Web-узел Yahoo!, который, вероятно, является самым по­
сещаемым в мире, решил заменить свой собственный язык создания сценариев на РНР.

Использование РНР для Web-приложений
С самого начала Web-страницы были статическими, т.е. они представляли собой простые
документы. Пользователи посещали Web-узлы, чтобы прочитать нужную информацию. Пои
этом документы были связаны между собой, так что пользователь мог спокойно найти ин­
формацию, которую он искал. Однако Web-страницы оставались неизменными. Каждый
пользователь, посещающий определенную Web-страницу, всегда видел одно и то же.
Впоследствии разработчики Web-страниц пожелали большего. Они захотели взаимодей­
ствовать с посетителями, получать от них информацию и настраивать Web-страницы под
конкретного пользователя. При этом было разработано несколько языков, позволяющих ссздавать динамические Web-узлы. РНР является одним из самых успешных таких языков, кот эрый быстро нашел свое применение и приобрел большую популярность.
РНР является серверным языком (server-side language) для написания сценариев. Это озна­
чает, что сценарий выполняется на сервере (компьютер, на котором установлен Web-узе.!).
В этом состоит отличие от другого популярного языка для создания динамических Webстраниц — JavaScript. Сценарий, написанный на JavaScript, выполняется клиентским брауз ;ром. Таким образом, JavaScript— клиентский язык (client-side language). Web-серверы
и взаимодействие серверов и клиентов описываются в разделе "РНР для Web" далее в этой главе.
22

Часть I. Познакомьтесь с языком сценариев РНР

Поскольку сценарий РНР выполняется на сервере, он позволяет динамически генерировать
HTML-код Web-страницы. Таким образом, каждый пользователь может видеть "свою" Webстраницу. При этом посетитель видит результат выполнения сценария, а не его программный код.
РНР предоставляет ряд возможностей, специально предназначенных для разработки
Web-узлов.
•S Взаимодействие с HTML-формами. РНР позволяет отображать данные
HTML-форм и обрабатывать информацию, введенную пользователем в браузере.
•S Взаимодействие с базами данных. РНР позволяет взаимодействовать с ба­
зами данных для хранения информации, введенной пользователем, или извле­
чения информации для ее отображения.
•J Создание безопасных Web-страниц. РНР позволяет разработчикам созда­
вать безопасные Web-страницы, требующие ввода достоверных имени поль­
зователя и пароля перед выводом содержимого Web-страницы.
Эти и другие возможности РНР позволяют очень легко создавать динамические Web-узлы.
Как уже отмечалось, РНР — серверный язык, который не может взаимодействовать
с пользователем напрямую. Это означает, что невозможно инициировать какие-либо дейст­
вия, основываясь на состоянии пользовательского компьютера, например, среагировать на
щелчок кнопкой мыши или уменьшение размера окна. Другими словами, с помощью РНР не­
возможно создать такие популярные эффекты, как выпадающее или изменяющее цвет меню.
С другой стороны, JavaScript является клиентским языком написания сценариев, который не
имеет доступа к серверу. Например, с помощью JavaScript невозможно сохранять информа­
цию на сервере или извлекать ее из серверной базы данных. Но, к счастью, вам ничего не
нужно выбирать. Вы спокойно можете использовать РНР и JavaScript вместе для создания та­
ких Web-страниц, которые невозможно разработать, используя только один из этих языков.
Вопросам совместного использования РНР и JavaScript посвящена глава 11.

Использование РНР для взаимодействия с базами данных
Существенным преимуществом языка РНР являются его возможности по взаимодействию
с базами данных. РНР поддерживает практически все возможные форматы баз данных, о ко­
торых вам когда-либо приходилось слышать. РНР устанавливает соединение с базой данных
и взаимодействует с ней. При этом вам нет необходимости знать о каких-либо технических
деталях такого взаимодействия. Вы указываете имя базы данных и ее местоположение, а сце­
нарий РНР сам выполняет все необходимые действия: устанавливает соединение, выполняет
запрос и возвращает результат.
В настоящее время РНР поддерживает большинство известных форматов баз данных:








dBASE
Informix
Ingres
Microsoft SQL Server
mSQL
MySQL
Oracle
PostgreSQL
• Sybase

• /

Глава 1. Знакомство с PHP

23

РНР поддерживает также и другие форматы баз данных, такие как filePro, FrontEase
и InterBase. К тому же РНР поддерживает открытый интерфейс доступа к базам данных
ODBC (Open Database Connectivity), который позволяет взаимодействовать с такими баздми
данных, как Access и ШМ DB2.
РНР идеально подходит для разработки Web-узлов, предназначенных для взаимодействия
с базами данных. PHP-сценарий позволяет сохранять и извлекать информацию из любой под­
держиваемой базы данных. Кроме того, РНР может взаимодействовать с базами данных вне
Web-окружения. Таким образом, работа с базами данных — одно из наилучших свойств РНР.

Использование РНР для взаимодействия с файловой системой
РНР предоставляет все необходимые средства для взаимодействия с файловой систем эй:
с папками и файлами, находящимися на локальном жестком диске или на компьютере, дос :уп
к которому возможен через сеть. РНР позволяет осуществлять запись в файл, считывать их
содержимое и создавать новые файлы. РНР также предоставляет возможности по созданию
папок, копированию, переименованию, удалению или изменению атрибутов файлов, а также
множество других разных операций. Таким образом, язык РНР позволяет выполнять практи­
чески все возможные задачи, относящиеся к файловой системе.
Большинство Web-узлов требует взаимодействия с файловой системой. Например, вэеменную информацию Web-приложению целесообразно сохранять в файле, а не в базе дан­
ных, и, следовательно, существует необходимость считывать ее из файла.
Поддержка и администрирование любой программной системы также часто требу от
взаимодействия с файловой системой. Например, РНР-сценарии можно использовать для
создания копий файлов, очистки папок или обработки текстовых файлов для изменения фер­
мата их содержимого. РНР позволяет справиться с этими задачами очень легко.

Использование РНР для запуска системных команд
Язык РНР предоставляет необходимые средства для взаимодействия с операционной ы :стемой, позволяя выполнять системные команды и получать результаты их выполнения. На­
пример, в сценарии РНР можно использовать команду d i r или I s для получения перечня
файлов в папке.
Возможность взаимодействия РНР с операционными системами является особенно полез­
ной при решении задач системной поддержки и администрирования. Например, используя
системные команды в сценарии РНР, можно получить список файлов в папке, выбрать, а за­
тем удалить ненужные файлы с определенным расширением.
Возможность выполнения системных команд позволяет также запускать и другие прэграммы в системе, т.е. с помощью сценариев РНР можно выполнять программы, написа *ные на других языках, и использовать результаты их выполнения. Не стало ли вам легче от
того, что не нужно переписывать программы, которые вы используете в настоящее время?
Используя PHP-сценарий, вы можете просто выполнять программы, написанные на Peri,
С или любом другом языке, или запускать сценарии оболочек (shell scripts). Таким образом,
РНР позволяет добавить новую функциональность к системным средствам, не тратя допол­
нительного времени на переписывание уже существующих программ.

Л/атциим функционирования PHJ*
РНР является языком программирования высокого уровня. Это означает, что он является
дружественным для пользователей и подобен английскому языку. Однако поскольку компью­
тер не понимает английский язык, то для взаимодействия с ним можно использовать РНР.
24

Часть I. Познакомьтесь с языком сценариев РНР

При этом интерпретатор РНР преобразует код сценария в язык, понимаемый компьютером,
который, в свою очередь, и обеспечивает выполнение всех необходимых действий.
Интерпретатор РНР поставляется в двух различных версиях. Первая из них предназначена
для работы с Web-узлами, а вторая — для запуска сценариев из командной строки независи­
мо от Web. При этом вы можете установить как обе версии, так и одну из них.

РНР как универсальный язык
Если РНР используется в качестве универсального языка написания сценариев, необходи­
мо установить РНР CLI. Эта версия РНР как раз и была разработана для этих целей. При этом
доступ к интерпретатору РНР осуществляется через командную строку, из которой и проис­
ходит запуск сценариев РНР. Такой подход аналогичен принципам использования многих
других языков программирования, таких как Perl или С. Вопросы, связанные с запуском сце­
нариев с помощью РНР CLI, более подробно рассматриваются в главе 3.
К а к работает World Wide W e b
Будет полезным немного рассказать о том, как работает "всемирная паутина", или World Wide Web j
(WWW). Web представляет собой сеть компьютеров, на которых находятся Web-страницы. Количество j
таких Web-узлов достигает миллионов. Для того чтобы было легче найти Web-узел во "всемирной j
паутине", ему присваивается определенный адрес, называемый URL (Uniform Resource Locator —
универсальный локатор ресурсов). URL Web-узла состоит из имен домена и файла, например)
www.mycompany.com/'
w e l c o m e . h t m l . Если пользователь хочет посетить определенную Web-страницу, ему необходимо набрать 1
нужный URL-адрес в браузере. При этом происходит следующий процесс.
|
1. Web-браузер посылает сообщение в Web с запросом на получение необходимой страницы.
2. Сообщение передается компьютеру, который находится по URL-адресу, указанному в запросе.
3. Web-сервер, установленный на удаленном компьютере, получает отправленное сообщение.
4. Web-сервер отыскивает необходимый HTML-файл, имя которого указано в URL-адресе запроса.
5. Отыскав запрашиваемый файл, Web-сервер передает его обратно браузеру, (Если запрашиваемого файла ]
не существует, Web-сервер посылает сообщение об ошибке.)
6. Web-браузер отображает на экране HTML-код полученной Web-страницы.

РНР для Web
Если РНР используется для создания Web-узлов, он должен использоваться совместно
с Web-сервером. Дело в том, что никакой Web-узел не может существовать без Web-сервера.
Web-сервер представляет собой специальное программное обеспечение, предназначенное для
отображения Web-страниц во "всемирной паутине". Поэтому РНР не может не взаимодейст­
вовать с Web-сервером.
При разработке Web-узлов РНР используется в качестве встроенного языка написания сце­
нариев (embedded scripting language). Это означает, что для размещения кода РНР в HTMLфайле используются специальные дескрипторы HTML, т.е. HTML-страницы, содержащие код
РНР, можно создавать и редактировать таким же образом, как и обычные страницы.
Если модуль РНР установлен на компьютере, то Web-сервер настроен таким образом,
чтобы обрабатывать встроенный PHP-код страниц с определенными расширениями. Зачас­
тую таковыми являются страницы с расширением .php или .phtml, однако Web-сервер
можно настроить для обработки файлов с любыми расширениями. Получив запрос на полу­
чение файла с определенным расширением, Web-сервер передает обратно HTML-код без ка­
ких бы то ни было изменений. В свою очередь, PHP-код сначала обрабатывается модулем
РНР, а затем результаты его интерпретации также отправляются обратно клиенту.
Глава 1. Знакомство с РНР

25

При этом результат обработки кода РНР возвращается в формате HTML, а сам код FHP
в файл, передаваемый обратно браузеру, не включается. Это существенно повышает безог яс­
ность. Кроме того, вся обработка выполняется незаметно для пользователя. Рассмотрим сле­
дующий пример кода на РНР:

В этом выражении дескриптор — закрывают IM.
Оператор echo позволяет выводить текст, в том числе и как HTML-код. Модуль РНР выпол­
нит обработку этого выражения и выдаст следующий результат:
3дравствуй, мир
Полученная строка содержит обычный HTML-код, который и отсылается клиентскому
браузеру.
Таким образом, очевидно, что РНР и Web-сервер функционируют совместно. Модуль PrIP
можно интегрировать далеко не с каждым Web-сервером, а только с наиболее популярными
из них. Поскольку РНР был разработан в рамках одного из проектов Apache Software Foun iation, лучше всего его использовать вместе с Web-сервером Apache. Однако модуль РНР мож­
но использовать и совместно с Microsoft IIS/PWS, iPlanet (в прошлом Netscape Enterpiise
Server) и другими Web-серверами.
Немного о Web-серверах
I
|
|
|
j
!
|
j
i

Программное обеспечение, которое обеспечивает отправку Web-страниц во "всемирную паутину", называется
Web-сервером (Web server). В настоящее время существует большое количество Web-серверов, но среди них
наиболее популярным является Apache. Согласно результатам исследований, приведенным на узлих
w w w . n e t c r a f t . c o m И w w w .s e c u r i t y s p a c e . c o m / s _ s u r v e y / d a t a / , ОКОЛО 60% Web-узлСБ
используют Apache. Web-сервер Apache относится программному обеспечению с открытым кодом, т.о.
бесплатному, и позволяет взаимодействовать со многими операционными системами. Он автоматически
устанавливается вместе с операционной системой Linux и Mac OS X. Более подробную информацию о Wetсервере Apache можно найти по адресу h t t p d . a p a c h e . o r g . Поскольку язык РНР был разработан Е
рамках одного из проектов Apache Software Foundation, наилучшим образом он работает именно вместе :
Web-сервером Apache.

; Однако существуют также и другие Web-серверы. Вторым по популярности является Internet Information Serve r
! (IIS), который используется на около 30% Web-узлов. Разработанный компанией Microsoft, IIS-сервер работает
j только под управлением операционной системы Windows. При этом он устанавливается по умолчанию вместэ
с серверными версиями этой системы. Среди других Web-серверов следует выделить Zeus, NCSA и Sun ONE!.
| Остальные Web-серверы используются не более чем на 2,5% Web-узлов.

О Услеживайfne изменения
Язык РНР относится к программному обеспечению с открытым кодом. Если до сих п эр
вы использовали только коммерческое программное обеспечение, разработанное такими
компаниями, как Microsoft, Macromedia или Adobe, то увидите, что программное обеспечение
с открытым кодом представляет собой нечто совсем иное. Оно обычно разработано различ­
ными программистами, которые занимаются разработкой в свое свободное время для удо­
вольствия и абсолютно бесплатно. Не существует никакого корпоративного офиса, с которым
можно было бы связаться по каким-либо вопросам, ни менеджера по продажам, который оы
убеждал вас во многих преимуществах разработанного программного обеспечения, ни теле­
фона технической поддержки, по которому можно было бы позвонить.
Все это звучит так, как будто не существует никакой поддержки РНР, не правда ли? Од­
нако все обстоит иначе. РНР поддерживается невероятным количеством разработчиков

26

Часть I. Познакомьтесь с языком сценариев РНР

и пользователей. И необходимо постоянно следить за изменениями, так как это является ча­
стью работы как пользователей, так и разработчиков РНР.
Открытое программное обеспечение часто подвергается изменениям, чаще чем один или два
раза в год, как в случае с коммерческим. Оно изменяется в тот момент, когда разработчики счи­
тают, что для этого пришло время, или вследствие возникающих проблем. Когда обнаруживает­
ся серьезная проблема, например изъян в обеспечении безопасности, новая версия, устраняющая
ее, может быть выпущена в течение нескольких дней. При этом вы не получите цветных букле­
тов и не увидите красочную рекламу в цветных журналах перед выходом новой версии. Если не
сделать все возможное для получения новой информации, можно пропустить выпуск новой вер­
сии или оставаться в неведении о серьезных проблемах, связанных с текущей версией.
Чаще посещайте официальный Web-узел РНР и постоянно знакомьтесь с приведен­
ной там информацией. Подпишитесь на рассылку сообщений, которые содержат
достаточно оперативную информацию. Когда вы приступите к использованию РНР,
то большое количество ценной информации по различным вопросам можно будет
найти в своем почтовом ящике. Впоследствии вы сможете помочь многим другим
разработчикам, основываясь на своем собственном опыте. По крайнем мере под­
пишитесь на рассылку уведомлений (announcement mailing lists), которые рассыла­
ются не так часто. Из них можно узнать о серьезных проблемах, найденных в про­
граммном обеспечении, или о выходе новых версий. Это именно то, что вам нужно.
Итак, пока вы не забыли, посетите официальный Web-узел РНР и подпишитесь на различ­
ные новости по адресу w w w . p h p . n e t / m a i l i n g - l i s t s . p h p .

РНР 5
Большинство существенных изменений, внесенных в РНР 5, не касаются общих правил
написания кода. В основном они относятся к вопросам, связанным с производительностью
РНР. Был существенно улучшен механизм Zend (волшебный и скрытый управляющий меха­
низм), и, как результат, сценарии выполняются теперь намного быстрее и эффективнее.
Большой акцент в РНР 5 сделан на объектно-ориентированном программировании, воз­
можности которого существенно улучшены по сравнению с версией РНР 4. Создание и ис­
пользование объектов осуществляется намного быстрее. Добавлены многие объектноориентированные свойства, включая обработку исключений (exceptions). Программисты,
предпочитающие объектно-ориентированный подход, должны быть довольны изменениями,
внесенными в РНР 5. (Объектно-ориентированное программирование описано в главе 9.)
С выходом РНР 5 изменилось и название интерпретатора РНР. Теперь интерпретатор для
Web называется p h p - c g i . PHP CLI называется просто php, как p h p . exe под Windows. Оба
файла можно найти в папке, в которой установлен модуль РНР. До появления РНР 5 обе про­
граммы имели одинаковое имя php. exe, но содержались в разных подкаталогах.
В РНР 5 добавлена поддержка формата баз данных MySQL 4.1 и выше. Однако она не включе­
на по умолчанию, поэтому поддержку MySQL 4.0 или MySQL 4.1 нужно активизировать после ус­
тановки РНР. До версии РНР 5 базы данных MySQL 4.0 и ниже поддерживались автоматически.
В РНР 5 по умолчанию поддерживается расширение SQLite, которое предоставляет быстрые
и простые средства для хранения и получения информации из текстовых файлов (flat files).

Предыдущие версии РНР
Следует знать о существенных изменениях, которые касаются предыдущих версий РНР.
Это связано с тем, что сценарии, написанные для более ранних версий интерпретатора РНР,
могут вызывать проблемы при использовании его более поздних версий. Ниже приведены
самые существенные изменения.

Глава 1. Знакомство с РНР

27

S Версия 4.3.1. Решены проблемы обеспечения безопасности, которые били
обнаружены в версии 4.3.0. Поэтому для поддержки Web-узла не стоит ис­
пользовать версии РНР 4.3.0 и ниже.
•S Версия 4.3.0. Внесены существенные изменения в версию РНР CLI, кото­
рые позволяют устанавливать ее по умолчанию при компиляции исходного
кода РНР (этот процесс описан в приложении А). Если версия РНР для ко­
мандной строки вам не требуется, то при установке необходимо отключить
соответствующий параметр.
•S Версия 4.2.0. Значением переменной r e g i s t e r _ g l o b a l s по умолчаьию
является Off. Сценарии, написанные с помощью предыдущих версий языка
РНР, могут использовать значение On и, следовательно, будут работать не­
корректно. Поэтому целесообразно переписать код сценария так, чтобы оь не
зависел от значения этой переменной.
•S Версия 4.1.0. Введены суперглобальные массивы. Сценарии, использующие
суперглобальные переменные (они рассматриваются в главе 6), не будут п оддерживаться ранними версиями. До версии РНР 4.1.0 необходимо использо­
вать массивы старого формата, такие как, например, $HTTP_POST_VARS.
Возможно, к моменту выхода в свет этой книги уже появятся обновления в РНР версии 5.
Однако вряд ли крупные отделы информационных технологий и Web-хостинговые компа! [ии
сразу же этим воспользуются. Всегда помните о нюансах различных версий используемого
программного обеспечения.

28

Часть I. Познакомьтесь с языком сценариев PhP

Глава 2

Настройка программного окружения
В э/ной главе...
>
>
>

Получение доступа к РНР через Web-серверы хостинговых компаний
Создание личного Web-узла с нуля
Тестирование РНР-сценариев

Й ш Ш еперь, когда вы решили использовать язык РНР, первая задача состоит в настрой+S й ц* ке рабочего окружения для разработки Web-приложений. Как уже упоминалось,
РНР чаще всего используется для разработки динамических Web-узлов, поэтому данная глава
в основном посвящена настройке РНР для дальнейшего использования на Web-узле. Если вы
планировали использовать РНР только как язык сценариев общего назначения, независимо от
Web, то процесс настройки рабочей среды намного упрощается. Вы можете пропустить раз­
делы, посвященные настройке окружения для работы в Web, и сразу перейти к разде­
лу "Настройка РНР для написания сценариев общего назначения".

Haanfiouica Web-остужения
Как говорилось в главе 1, язык РНР для Web-разработки используется в паре с Webсервером. Таким образом, для работы Web-узла требуется Web-сервер. При использовании
РНР на вашем узле Web-сервер должен поддерживать обмен информацией со сценариями
РНР. Значит, РНР должен быть установлен на сервере, который удовлетворяет данному тре­
бованию. Окружение узла включает в себя не только Web-сервер и модуль РНР. Приведем
несколько других требований.
•S Компьютер должен быть подключен к Internet.
•S Компьютер должен иметь достаточно ресурсов, таких как дисковое простран­
ство и память, для управления ожидаемым Web-трафиком.
•S Для работы сценария РНР может понадобиться другое программное обеспе­
чение, например для управления базами данных.
Вы можете интересоваться или не интересоваться установкой вашего личного окружения,
вы можете считать, что его настройка — это развлечение, или можете думать, что все про­
граммы уже установлены и функционируют. Если вы хотите установить личное Webокружение с нуля, то это можно осуществить. Возможно, даже на вашем компьютере уже ра­
ботает Web-узел, а вам нужно только обеспечить расширение его функциональности с ис­
пользованием языка РНР. Если вы не хотите устанавливать личное Web-окружение, то може­
те использовать окружение, установленное и поддерживаемое кем-то другим, например
информационным отделом вашей компании или коммерческими компаниями, которые пре­
доставляют услуги Web-хостинга. Возможно, вы уже имеете Web-узел, который хотели бы
сделать более динамическим. Язык РНР можно использовать во всех случаях, независимо от
того, сами вы создаете Web-окружение или оно предоставлено кем-то другим.
Другой вариант типичной среды разработки включает как вашу личную Web-среду, так
и поддерживаемую кем-то другим (зачастую разработчики организуют тестирование Web-

среды на своих личных компьютерах, на которых они создают и отлаживают Web-страницы).
Потом, когда все будет работать корректно, Web-страницы пересылаются на корпоративный
Web-узел, который поддерживается информационным отделом или компанией, предостав­
ляющей услуги Web-хостинга.
Приведем некоторые преимущества использования готового Web-окружения.
•S Это легче, чем настроить свое собственное окружение. Вы только копи­
руете Web-страницы на другой компьютер. Вам не нужно устанавливать ;ругое программное обеспечение, компьютерное оборудование или решать кэмпьютерные проблемы. Кто-то другой сделает все это за вас.
•S Требуется меньше технических навыков работы. Вам необходимо знать
лишь языки программирования в Web, такие как HTML и РНР. При этом не
нужно ничего знать о соединениях Internet, Web-серверах, администрирс ва­
ши компьютеров и других технических вопросах. Это интересно некоторым
людям, однако далеко не всем.
Преимущества использования собственной Web-среды состоят в следующем.
•S Управляемость. Вы принимаете все решения самостоятельно и можете на­
строить Web-среду по своему усмотрению.
•S Доступ. Вы имеете доступ к компьютеру всегда, когда захотите работать
с вашим узлом.
S Стабильность. Вы знаете, что узел будет работать столько, сколько вам нуж­
но. Вы полностью защищены от ситуации, когда однажды проснувшись, узкаете, что компания, которая предоставляла вам услуги хостинга, отошла от ;;ел,
и вам необходимо за два дня переместить ваш узел куда-нибудь в другое местэ.
•S Безопасность. Поскольку вы контролируете Web-среду, то только вы должны
иметь доступ к компьютеру. По мере необходимости его можно заблокиэовать. Если вы пользуетесь услугами хостинговых компаний, то к компьютеру
имеют доступ и другие люди. Один из них может быть тем плохим парнгм,
который завладеет вашими секретами.

Использование существующей Web-среды
Если вы используете Web-среду, настроенную кем-то другим, вам не обязательно нужно
понимать все нюансы процесса установки и администрирования программного обеспечения
Web-узла. Кто-то другой— информационный отдел вашей компании, коммерческие хостпнговые компании или ближайший сосед— отвечает за функционирование узла. Их обязшность — предоставить вам возможность работать с Web-узлом, включая РНР. Ваше задача —
лишь написать и установить файлы Web-узла.
Для использования существующей Web-среды вам понадобится следующая информация
от администратора Web-узла.
•S Местоположение Web-страниц. Для того чтобы узел был доступен для всего
мира, Web-страницы должны располагаться в особом месте на компьютере.
Web-сервер, который доставляет Web-страницы во внешний мир, рассчиты зает найти файлы в специальном каталоге. Вам необходимо знать, где находит­
ся этот каталог, и иметь к нему доступ.
S Процесс доставки Web-страниц. Необходимо знать, как установить фашы.
В большинстве случаев вы отправляете файлы с использованием протокола FTP
в надлежащее место. Протокол передачи файлов FTP (File Transfer Protocol) — : то
метод копирования файлов с одного компьютера на другой по сети. В некотор их

30

Часть I. Познакомьтесь с языком сценариев РНР

случаях файлы можно копировать непосредственно или использовать другие
методы доставки Web-страниц. Для установки файлов нужно иметь иденти­
фикатор пользователя (user Ш) и пароль.
S Имя файла, используемое по умолчанию. Когда пользователи вводят в окне
браузера адрес URL, им передается некоторый файл. В настройках Webсервера указывается имя файла, отсылаемого по умолчанию, если URL-адрес
указывает на каталог. Зачастую этот файл называется i n d e x . h t m или
i n d e x . h t m l , но иногда он имеет имя d e f a u l t . h t m . Необходимо знать,
как назвать свой файл, передаваемый по умолчанию.
S Расширение файлов РНР. После установки модуля РНР Web-сервер ожи­
дает встретить операторы РНР в файлах со специальным расширением.
Часто таким расширением является .php или .phtml, но могут использо­
ваться и другие расширения. Операторы РНР в файлах с некорректным
расширением не будут выполняться. Необходимо знать, какое расширение
нужно использовать для сценариев РНР.
Одним из неудобств хостинга узла в существующей Web-среде является отсутствие контроля
над средой разработки. Администраторы предоставляют Web-среду, которая, по их мнению, ра­
ботает лучше всего. Например, модуль РНР имеет бесчисленное количество настроек, которые
можно установить, отменить или инициализировать разными значениями. Администраторы, за­
давая значения параметров, руководствуются своими нуждами, которые могут быть оказаться не
столь подходящими для ваших целей. Возможно, такая настройка окружения обоснована легко­
стью ее обслуживания, низкой стоимостью и минимальными неудобствами клиента. Вы не
сможете изменить некоторые параметры среды, а можете только просить, чтобы администрато­
ры изменили их. Они будут неохотно изменять рабочие параметры, поскольку подобная моди­
фикация может привести к проблемам с системой или с другими клиентами.

Выбор хостинговой компании
Хостинговые компании предоставляют все, что нужно для работы Web-узла, включая
дисковое пространство и все программное обеспечение узла. Вы только создаете файлы сво­
их Web-страниц и перемещаете их в местоположение, указанное хостинговой компанией.
Услуги хостинга предоставляет огромное количество компаний. При этом обычно взима­
ется ежемесячная плата, которая часто является очень маленькой или совсем отсутствует.
Компании, предоставляющие услуги бесплатно, требуют размещения их рекламы на страни­
цах своих клиентов. Конечно, месячная плата изменяется в зависимости от ресурсов, выде­
ленных для вашего Web-узла. Например, плата за узел, который занимает 2 Мбайт дискового
пространства, как правило, меньше, чем за узел размером 10 Мбайт.
Убедитесь в том, что хостинговая компания позволяет использовать сценарии РНР
(некоторые этого не делают). Также убедитесь, что компания предлагает последнюю версию
РНР. Хостинговая компания может не поддерживать последнюю версию, которая только вы­
пущена, но обязана обновить ее незадолго после выхода новой версии.
Не пользуйтесь услугами компаний, которые предлагают поддержку лишь РНР 3.
РНР 4.3.1 был выпущен в феврале 2003 года, поэтому ни одна хостинговая ком­
пания не должна предоставлять РНР более ранних версий, поскольку в РНР 4.3.1
были устранены проблемы с безопасностью, обнаруженные в более ранних вер­
сиях. Остается надеяться, что к моменту выхода в свет этой книги большинство
компаний будет предлагать хостинг РНР 5.

Глава 2. Настройка программного окружения

\

31

Среди других мотивов выбора хостинговой компании следует отметить следующие.
•S Надежность. Вам необходима компания, которой можно доверять и котэрая
завтра не обанкротится и не исчезнет. Выберите компанию, которая имеет не­
обходимые вычислительные мощности и другие ресурсы для поддержки Bai jero
узла. Узел, который больше простаивает, чем работает, абсолютно бесполезш.
S Скорость. Страницы, которые медленно загружаются, раздражают польз эвателей и вынуждают их посетить другие Web-страницы. Медленная загрузка
страниц может быть результатом того, что хостинговая компания мало£ юджетна и не имеет хорошего оборудования. В любом случае компании, пгресылающие Web-страницы слишком медленно, не могут представлять ocof ioro
интереса. Поэтому при выборе хостинговой компании следует пойнтер гсоваться скоростью загрузки страниц, которую она обеспечивает. Иногда такая
информация содержится на узле хостинговой компании, в противном ел; чае
ее можно получить у менеджера.
•S Техническая поддержка. Некоторые хостинговые компании не имеют спе­
циалистов, готовых отвечать на вопросы или решать проблемы клиентов.
Техническая поддержка часто обеспечивается только через рассылку по э. гектронной почте. Такой способ может быть приемлем только в том случае, если
ответ предоставляется в кратчайший срок. Иногда качество услуг компании
можно проверить, позвонив по телефону технической поддержки или зас< кая
время ответа по электронной почте.
S Доменное имя. Каждый узел имеет свое доменное имя, с помощью которого
Web-браузеры находят его в сети. Каждое имя домена регистрируется за не­
большую ежегодную плату, так что пользоваться им может только один у (ел.
Одни хостинговые компании разрешают независимо использовать зарегист­
рированное вами доменное имя; другие помогают с регистрацией и использо­
ванием нового имени домена, а третьи требуют использовать их домен яое
имя. Например, допустим, что ваша компания называется Good Stuff и вы хо­
тите, чтобы узел назывался JanetsGoodStuff. Одни компании разрешат назвать
ваш узел J a n e t s G o o d S t u f f . com, а другие потребуют, чтобы узел имел имя
JanetsGoodStuff.Web-hostingcompanyname.com, или JanetsGood­
S t u f f .Web-hostingcompanyname . com/~GoodStuf f, или что-то в этом
роде. Вообще-то, узел будет выглядеть более профессионально, если вы буде­
те использовать собственное доменное имя.
•/ Свойства. Свойства следует выбирать в зависимости от назначения у:ла.
Обычно хостинговая компания предлагает определенные возможности в па­
кетах или планах. Но чем больше возможностей, тем выше цена. Некоторые
свойства, которые следует рассмотреть, приведены ниже.
• Дисковое пространство. Как много (Мбайт/Гбайт) места на диске займет
ваш узел? Медиа-файлы (графика и музыка) могут занимать действительно
много дискового пространства.
• Передача данных. Некоторые хостинговые компании взимают плату за
отправку Web-страниц пользователям. Если вы рассчитываете на интен­
сивный трафик, то эти затраты следует принять во внимание.
• Адреса электронной почты. Многие компании обеспечивают своих кли­
ентов некоторым количеством адресов электронной почты. Например, ге­
ли ваш узел называется JanetGoodStuff.com, вы можете позволить
своим посетителям писать по адресу me@JanetGoodStuf f . com.
32

Часть I. Познакомьтесь с языком сценариев РНР



Программное обеспечение. Хостиговые компании предлагают доступ к
множеству программных продуктов для разработки Web-приложений.
Помимо РНР, который является предметом рассмотрения этой книги, не­
которые компании предлагают базы данных, такие как MySQL или
PostgreSQL, другие средства Web-разработки, такие как FrontPage, про­
граммы разработки электронных магазинов, проверки правильности дан­
ных кредитных карточек и т.д.
• Статистика. Часто компании помогают своим клиентам собрать стати­
стику о Web-трафике на вашем узле, сведения о количестве пользователей,
времени доступа к Web-странице и т.д.
•S Резервное копирование. Резервные копии (backup) — это копии файлов ва­
ших Web-страниц и баз данных, которые хранятся на случай потери или по­
вреждения файлов или базы данных. Нужно удостовериться в том, что компа­
ния регулярно и часто делает резервные копии приложений своих клиентов.
При этом следует также поинтересоваться, как быстро ваш узел перейдет из
резервных копий в рабочий режим при возникновении какой-либо проблемы.
Хостинговые компании сложно исследовать с нуля— поиск в Google на запрос "webhosting" выдает около 4 миллионов результатов. Наилучший путь для выбора хостинговои
компании — попросить рекомендации у людей, имеющих опыт работы с этими компаниями.
Люди, которые пользовались услугами хостинговых компаний, могут предостеречь вас от ус­
луг компаний с медленным сервисом или неустойчивой работой компьютеров. Собрав сведе­
ния о нескольких хостинговых компаниях, услугами которых довольны их клиенты, вы мо­
жете сузить этот список до одной, которая вам больше подходит.

ЧЙ—*j£

Игра "доменное имя"

Каждому узлу необходим уникальный адрес в сети. Он используется компьютерами для нахождения узла и
называется IP-адресом. Это последовательность из четырех чисел от 0 до 255, разделенных точками,
например 1 7 2 . 1 2 . 2 0 4 . 2 .

Так как IP-адрес — это комбинация цифр и точек, их тяжело запомнить. К счастью, большинство IP-адресов
имеет соответствующие имена, которые намного легче запомнить, например a m a z o n . com, www. i r e . g v
или m y c o m p a n y . com. Имя, которое соответствует адресу узла, называется доменным именем (domain
name). Доменом может быть как один компьютер, так и группа компьютеров, связанных между собой. Если
домен состоит из нескольких компьютеров, то каждый из них может иметь свое имя. Имя, которое включает в
себя собственное имя компьютера, такое как t h o r . m y c o m p a n y . c o m , называется лоддоменом
(subdomain) домена m y c o m p a n y . com.
Имя домена или поддомена является неотъемлемой частью URL-адреса, который пользователь вводит в окне
браузера для определения Web-узла, который он хочет посетить. URL-адрес может содержать больше
составляющих, нежели просто имя домена, но зачастую имя домена (например, a m a z o n . c o m ) —это все,
что нужно. Иногда достаточно имени поддомена ( j a n e t . v a l a d e . com). Если используется только имя
домена, то Web-сервер передает файл с именем по умолчанию ( i n d e x . h t m или i n d e x , h t m l ) . Иногда в
адрес кроме имени домена включают также имя файла, например j a n e t . v a l e d . c o m / l i n k s . h t m l .
Для того чтобы имя домена могло служить адресом, оно должно быть уникальным в Internet. Тогда система
регистрации доменных имен сможет удостовериться в том, что нет двух узлов с одинаковыми именами. Каждый
клиент может зарегистрировать любое имя домена, если это имя еще никем не используется. При
регистрации имени домена вы проверяете его на наличие в сети. Если все в порядке (имя уникально), вы
регистрируете его на свое имя или на имя компании и платите взнос. Обычная плата за регистрацию доменного
имени составляет 35 долларов в год. Обычно больше платить не приходится, а вот поторговаться можно.

Глава 2. Настройка программного окружения

33

Доменное имя можно зарегистрировать на многих Web-узлах, включая множество хостинговых компании.
Поиск в Google по запросу "регистрация доменного имени" дает около 2 миллионов результата, i
Удостоверьтесь, что вы нашли самую низкую цену. Многие узлы позволяют по доменному имени узнать, за
кем оно закреплено. Эти Web-узлы используют поиск в базе данных доменных имен с помощью команды ,
w h o i s . Такой поиск можно организовать на узлах Allwhois ( A l l w h o i s . c o m ) и Better-Whjis j

i (betterwhois.com).

Об именах можно спросить у коллег или друзей. На PHP-форумах посетители
часто задают вопросы о хостинговых компаниях. Многие посетители форумов
имеют богатый опыт использования РНР с хостинговыми компаниями и будут
рады вам помочь. Поскольку подобные вопросы возникают очень часто, то соот­
ветствующую информацию можно поискать и в архивах, расположенных по ад­
ресу marc . t h e a i m s g r o u p . com/.

Настройка собственного Web-окружения
Если вы начинаете разработку Web-узла с нуля, нужно хорошо понимать структуру грограммного обеспечения. Необходимо принять несколько решений относительно аппаратного
и программного обеспечения. Потребуется установить Web-сервер и модуль РНР, а затем са­
мостоятельно поддерживать, администрировать и обновлять систему. Такой путь требует
больше усилий и знаний.
Приведем основные действия по настройке Web-окружения, необходимой для работы
программ, описанных в этой книге.
1. Настройте компьютер.
2. Установите Web-сервер.
3. Установите модуль РНР.
Первый шаг здесь мы рассматривать не будем. Наверняка у вас есть компьютер, но вголне возможно, что для развертывания своего Web-узла вы планируете использовать (или при­
обрести) другой компьютер. Более подробную информацию относительно компьютеров
можно найти в книге ПК для "чайников", 9-е издание, которая вышла в издательстве
"Диалектика". Web-серверы и модули РНР существуют почти для всех типов аппаратных
средств и операционных систем, включая множество версий Unix и Linux, Windows и MacOS.

Установка Web-сервера
Если компьютер уже куплен и настроен, следует решить, какой Web-сервер устанав пи­
вать. Наилучший выбор — это, конечно же, сервер Apache, поскольку он имеет ряд следую­
щих преимуществ.
•S Бесплатный. Что еще можно добавить к этому?
•S Работает с разными операционными системами. Сервер Apache работает
под управлением систем Windows, Linux, MacOS, FreeBSD и большинства
версий Unix.
S Популярность. Согласно исследованиям, результаты которых приведены по адг есу
www.netcraft.com/survey и www.securityspace.com/s_survey/data/,
на 60% узлов используется Web-сервер Apache. И это действительно так. !Это
также означает, что при возникновении проблем вам сможет помочь болытое
количество пользователей.

34

Часть I. Познакомьтесь с языком сценариев РНР

•f Надежность. После установки и настройки сервер Apache будет работать
столько, сколько проработает ваш компьютер. Проблемы с этим сервером
возникают очень редко.
•/ Возможность настройки. Открытый исходный код дает возможность про­
граммистам модифицировать сервер Apache, добавляя или модифицируя мо­
дули по своему усмотрению.
•/ Безопасность. Существует бесплатное программное обеспечение, которое
позволяет настроить Apache для работы с сервером безопасности SSL. Прото­
кол SSL применяется для обеспечения повышенной безопасности Web-узлов,
использующих очень важную информацию. Это значит, что информация, пе­
редаваемая между Web-сервером и браузером, шифруется, поэтому никто не
сможет перехватить и прочитать ее. Безопасность — необходимый компонент
для узлов электронной коммерции.
Сервер Apache автоматически устанавливается при установке полной версии системы Linux.
Кроме того, Apache обычно входит в состав операционной системы Мае. Для большинства вер­
сий Unix можно самостоятельно скачать ядро Apache и скомпилировать его, а можно использо­
вать двоичные файлы (binary) (скомпилированные программы для определенных операционных
систем). Если вы работаете с операционной системой Windows, вам необходимо установить би­
нарный файл (в основном Apache предназначен для работы с операционными системами
Windows NT/2000/XP, хотя иногда его используют и в системах Windows 98/Ме).
Как уже говорилось, наиболее стабильной текущей версией является Apache 1.3.27.
Apache 2 — это также стабильная версия, но до сих пор модуль РНР работает с ней в экспе­
риментальном режиме. Однако в любом случае обратитесь на узел www. php. n e t и проверь­
те текущее состояние дел по этому вопросу. Информацию о сервере Apache, загрузочные мо­
дули, документацию, рекомендации по установке в различных операционных системах
можно найти по адресу h t t p d . a p a c h e . org.
Для работы с языком РНР вполне подойдут и другие Web-серверы. Компания Microsoft
предлагает сервер IIS (Internet Information Server), который занимает второе место по попу­
лярности в сети Internet: на нем работает около 27% Web-узлов. Компания Sun предлагает
сервер iPlanet (раньше он назывался Netscape Enterprise Server), который обслуживает менее
5% узлов глобальной сети.
Установка модуля РНР
Многие компьютерные системы поставляются вместе с модулем РНР. Он включен в со­
став большинства дистрибутивов Linux. Некоторые более новые версии операционной систе­
мы Mac OS X тоже поставляются вместе с модулем РНР. Перед тем как установить этот модуль,
проверьте, не был ли он установлен на вашем компьютере ранее. Для этого поищите на диске
PHP-файлы. В различных операционных системах это можно сделать следующим образом.

I

S Linux/Unix/Mac. В командной строке введите команду
f i n d / -name "php*"
S Windows. Воспользуйтесь средством поиска (выберите команду Пуск^Поиск)
для нахождения файлов по шаблону php*.

Если вы не нашли PHP-файлов, значит, модуль РНР отсутствует. Для его установки по­
требуется доступ к Web-серверу вашего узла. Например, если вы устанавливаете РНР для
работы с сервером Apache, нужно отредактировать его конфигурационный файл. Всю
необходимую информацию и требуемые программные модули можно найти на узле
www. php. n e t . Подробные указания по установке приведены в приложении А.

Глава 2. Настройка программного окружения

35

Если же РНР-файлы нашлись, значит, модуль РНР уже установлен и переустанавли *ать
его не нужно. Чтобы определить, нужно ли переустанавливать модуль РНР, воспользуйтесь
следующими рекомендациями.
| S Параметры установки. Модуль РНР может быть установлен не с теми п араметрами, которые нужны именно вам. Например, он может быть устаноглен
без поддержки базы данных, которую вы планировали использовать. Обь: чно
при установке модуля РНР по умолчанию включен режим поддержки ODBC,
но параметры поддержки MySQL, Oracle, MS SQL и других баз данных ел ;дует задавать в явной форме. Аналогично, при установке РНР всегда обеспечи­
вается поддержка SQLite, XML, COM, FTP и т.д., но поддержка других фор­
матов по умолчанию отключена. Если вы планируете использовать другую
базу данных или программное обеспечение, то, видимо, следует переустано­
вить модуль РНР с поддержкой дополнительных возможностей.
Можно проверить, какие настройки использовались при установке модуля
РНР. Для этого следуйте рекомендациям по тестированию, приведенным
в следующем разделе. Если тестовый сценарий работает корректно, то в таб­
лице, которую выведет функция phpinf о (), будут приведены все режимы,
которые поддерживаются вашей версией РНР. Проверьте, включена ли под­
держка нужных вам расширений. Если нет, следует переустановить модуль
РНР. Подробные указания по установке приведены в приложении А.
S Версия. Установленная версия может оказаться не самой новой. Следует про­
верить номер установленной версии модуля РНР. Сделать это можно с пс мо­
щью команды
php-cgi -v
Для версий, более ранних, чем РНР5, эта команда имеет следующий вид:
php - v
Чтобы использовать одну из этих команд, следует перейти в каталог, содер­
жащий файл p h p - c g i . e x e (или php.exe). В результате вы увидите сле­
дующую информацию:
РНР 5.0.0 ( c g i - f c g i ) , Copyright (с) 1997-2003 The PHP Grotp
Zend Engine v 2 . 0 . 0 . Copyright (c) 1998-2003 Zend Technologies
Если установленная ранее версия оказалась не самой новой, модуль РНР сле­
дует переустановить. Более подробную информацию о его последней вер;ии
можно найти по адресу www. php. n e t /downloads . php.

Тестирование РНР
После того как получена вся необходимая информация, следует протестировать модуль
РНР и убедиться в корректности его работы.
1. Найдите папку, в которой будут размещаться сценарии РНР.
Именно в этой папке и ее подпапках будут храниться файлы вашего узла. Обычно три
использовании сервера Apache эта папка по умолчанию называется h t d o c s . Она со­
держится в папке, в которой установлен Web-сервер. Для сервера IIS — это папка
lnetpub\wwwroot. В системе Linux это может быть каталог /var/www/html. При
установке Web-сервера можно указать любое имя папки, поэтому если Web-серзер
устанавливал кто-то другой, необходимо узнать имя папки, используемой для хране­
ния файлов РНР. Если вы пользуетесь услугами хостинговой компании, она долхна
предоставить вам имя этой папки.

36

Часть I. Познакомьтесь с языком сценариев РНР

2. Создайте файл с именем t e s t . p h p и добавьте в него следующий код:


Tec™poBaHne PHP


Это строка HTML



3. Укажите в браузере URL-адрес файла t e s t . p h p , который был создан при вы­
полнении п. 2.
URL будет иметь вид h t t p : / / w w w . m y c o m p a n y . c o m / t e s t . p h p . Если же Webсевер, модуль РНР и сам файл находятся на локальном компьютере, можно ввести
URL-адрес l o c a l h o s t / t e s t . p h p .
A^'g^N

Ж

Чтобы файл обрабатывался интерпретатором РНР, нужно получить доступ к не­
му через Web-сервер, а не с помощью команды меню браузера ФайлООткрыть.

В результате в окне браузера вы увидите следующее:
Это с т р о к а HTML
Это с т р о к а РНР
Под этими строками должна появиться большая таблица, отображающая всю информацию
о РНР в вашей системе. В ней будут содержаться пути и имена файлов, значения перемен­
ных, поддерживаемое программное обеспечение и значения различных параметров.
Эта таблица создается функцией сценария p h p i n f о ( ) . Если у вас возникнут вопросы по
поводу настройки модуля РНР, всегда можно воспользоваться этой функцией, чтобы отобразить
таблицу и проверить установки. Функция p h p i n f о () будет часто использоваться в этой книге.
Если с установкой модуля РНР возникли какие-либо проблемы, то в результате выполне­
ния тестового сценария можно получить следующую информацию.
•S Выводится только текст Это с т р о к а HTML. Строки РНР и таблица не ото­
бражаются.
•S Отображается пустая страница.
•/ Браузер не отображает Web-страницу.
Если при запуске тестового файла возникли проблемы, а вы не являетесь системным ад­
министратором, то нужно поговорить с тем, кто устанавливал и поддерживает программное
обеспечение. Это их работа — диагностировать и решать подобные проблемы.
Если же вы системный администратор и у вас возникла проблема с тестовым файлом, то
сначала проверьте, установлен ли модуль РНР. В командной строке перейдите в каталог,
в котором установлен модуль РНР, и введите команду
php-cgi -v
или
php - v

Глава 2. Настройка программного окружения

37

Если интерпретатор РНР возвращает информацию о своей версии, значит, он установ, [ен.
Убедитесь в том, что вы обращаетесь к тестовому файлу именно так, как описано в п. 3.
Удостоверьтесь, что тестовый файл находится в вашем дисковом пространстве, как спи­
сано в п. 1. При использовании сервера Apache можно просмотреть файл h t t p d . c o n f
и проверить правильность строки
DocumentRoot "С:/Program Files/Apache Group/Apache/htdocs"
Эта строка указывает серверу Apache, где искать файлы Web-страниц.
Еще раз убедитесь в правильности кода. Тестовый сценарий можно загрузить с Web-) зла
автора этой книги — j a n e t . v a l a d e . com.
Если же сценарий написан правильно и пути заданы корректно, то проблема, скорее псего, в конфигурационных параметрах модуля РНР. Просмотрите инструкции по настройке мо­
дуля РНР в конце приложения А и удостоверьтесь в том, что вы следовали всем указаниям.
Особенно проверьте следующее.
•S Web-сервер настроен так, что по расширению определяет файлы с кодом Р IP.
Проверьте, что файл h t t p d . conf содержит строку
AddType a p p l i c a t i o n / x - h t t p d - p h p .php
•S Эта строка указывает серверу Apache, что код РНР следует искать в файаах
с расширением . php. Для сервера ES нужно получить доступ к консоли, как
описано в приложении А, и проверить список расширений.
S Проверьте корректность других строк в файле h t t p d . c o n f , как описшо
в рекомендациях в приложении А. Удостоверьтесь также, что необходимые
строки содержатся в нужных местах.
•S Если вы используете сервер IIS, найдите в файле php. i n i следующую строку:
cgi.force_redirect = О
S Если в файле p h p . i n i нет такой строки — добавьте ее. Если она есть, но пе­
ред ней стоит точка с запятой, удалите этот символ. Если в этой строке укгзано значение 1 — замените его на 0.
Если вы все тщательно проверили, но проблема не исчезла, возможно, у вас что-то не­
обычное с настройками компьютера или Web-сервера. Прочтите всю информацию о комт по­
тере, которая имеет отношение к установке модуля РНР, а также о проблемах, которые мо :ут
возникать при его установке.
Если проблема по-прежнему существует, отправьте свой вопрос в одну из групп новостей.
Сначала просмотрите архивы по адресу marc . t h e a i m s g r o u p . com/. Возможно, кто-то )же
задавал этот вопрос, и вы сможете быстро найти ответ в архивах. Если нет — отправьте во­
прос на форум. Включите в свой вопрос следующую информацию.
•S
•S
S
S

Укажите название и версию операционной системы, которую вы используете.
Укажите версию РНР, которую вы пытаетесь установить.
Скопируйте содержимое тестового файла в письмо.
Опишите точный результат, который вы видите на Web-странице.

Как правило, участники форума являются очень эрудированными специалистами. Они 18верняка помогут решить все проблемы.

38

Часть I. Познакомьтесь с языком сценариев РНР

Hactflftoutca THJ* qj& написания
cu^Haftuetf общего назначения
PHP можно использовать как самостоятельный язык программирования общего назначе­
ния. В этом случае устанавливать Web-сервер не нужно. Версия РНР для командной стро­
ки — РНР CLI — является отдельной программой, которая не используется для поддержки
Web-узлов. Ее необходимо установить отдельно.
Даже если на вашей машине уже установлен модуль РНР, версия РНР CLI на ней может
отсутствовать. Проверьте, установлен ли на вашем компьютере модуль РНР и какой версии.
Поищите соответствующий файл в каталоге РНР. Исполняемый файл РНР CLI называется
p h p . e x e , a PHP CGI— p h p - c g i . e x e . (В версиях до РНР 5 оба файла назывались
php. ехе, которые хранились в различных подкаталогах. РНР CLI размещался в подкаталоге
/ c l i . ) Возможно, версия РНР CLI была установлена в каком-нибудь другом месте. Все фай­
лы РНР на жестком диске можно найти с помощью следующей команды.
•S Linux/Unix/Mac. Введите в командной строке следующую команду:
f i n d / -name "php*"
•S Windows. Используйте средство поиска (выберите команду ПускО Поиск)
и в качестве шаблона поиска введите строку php*.
Если вы нашли файлы РНР, которые, по-вашему мнению, могут относиться к РНР CLI,
перейдите в каталог, где находятся эти файлы, и введите следующую команду:
php -v
На экране появится следующая строка, содержащая фрагмент c g i или c l i :
РНР 5 . 0 . 0

(cli)

( b u i l t : J u n 1 5 , 2003 2 3 : 0 7 : 3 4 )

Обратите внимание на то, что в данном случае в строке содержится фрагмент ( c l i ) . При
проверке версии интерпретатора для Web, в результирующей строке будет содержаться
фрагмент ( c g i ) . Указанная команда может также использоваться для проверки корректно­
сти работы программы РНР CLI. Если в результате выводится номер версии, а не сообщение
об ошибке, значит, программа работает правильно.
Если вы не нашли версию РНР CLI, ее нужно установить. Только после этого вы сможете
использовать РНР для решения задач, не связанных с Web. В приложении А детально описа­
на процедура установки РНР, включая инструкции и для установки РНР CLI.
Если вы собираетесь использовать РНР как для разработки Web-узлов, так и для создания
сценариев общего назначения, необходимо установить две различные PHP-программы —
версию для Web и версию РНР CLI. Обе программы должны быть одинаковой версии, т.е. ес­
ли вы устанавливаете РНР 5.0.0 для Web, убедитесь, что вы также используете РНР CLI 5.0.0.
В системе Windows для работы РНР требуется файл p h p 5 t s . d l l , который находится
в главном каталоге РНР. Необходимо использовать одинаковые версии РНР, чтобы обе РНРпрограммы могли работать с одним файлом p h p 5 t s . d l l . (Более детальная информация по
этому вопросу содержится в приложении А.)

Hacfnftoutca THJ*
Модуль РНР характеризуется чрезвычайной гибкостью. Поведение интерпретатора РНР
определяется конфигурационными параметрами. Например, именно эти параметры опре­
деляют режим отображения сообщений об ошибках. Конфигурационные параметры хра-

Глава 2. Настройка программного окружения

39

нятся в файле p h p . i n i . Редактируя этот файл, можно вносить изменения в конфигураци­
онные параметры.
Как описывается в приложении А, при установке модуля РНР создается файл php. i ai.
Если вы устанавливаете РНР самостоятельно, запомните местоположение этого файла. Еозможно, позже вам понадобится его изменить. Если вы только используете модуль РНР, а ктото другой является его администратором (например, если вы пользуетесь услугами хостин говой компании), вы вряд ли будете иметь доступ к файлу php. i n i . Если вам нужно измен 1ть
параметры модуля РНР, необходимо попросить об этом администратора. В некоторых случа­
ях можно добавить соответствующие команды в свой сценарий, чтобы временно измен тгь
настройки только для этого сценария. Определенные операторы, которые временно измеш ют
настройки РНР, обсуждаются в различных главах этой книги.

использование специальных cfteqctn£
создания, PHT-cu^Hafiuee
PHP-сценарии— это простые текстовые файлы. Значит, при их создании можно пользо­
ваться любыми известными средствами работы с текстовыми файлами. Множество сценариев
написано с использованием редакторов v i , Notepad или WordPad. Кроме того, существуют
средства, которые существенно облегчают весь процесс разработки.
Заслуживают внимания редакторы для создания программ и интегрированные среды
разработки ШЕ (Integrated Development Environment). Эти средства предоставляют воз­
можности, которые могут уберечь вас от огромных затрат времени в процессе разработ
>
>
>

Операторы языка РНР
Включение фрагментов РНР в файлы HTML
Операторы РНР для вывода данных
Документирование сценариев

О

ператор языка РНР — это инструкция, которая указывает интерпретатору РНР, какие
действия нужно выполнить. PHP-сценарий— этопоследовательность операторов
РНР. Теоретически сценарий может содержать один или несколько операторов, но вряд ли
какой-либо сценарий будет состоять из единственного выражения. В большинстве случаев
сценарии включают по несколько операторов в строке. Интерпретатор РНР выполняет опера­
торы по-одному до тех пор, пока не достигнет конца сценария.
Как уже упоминалось в главе 1, РНР обеспечивает множество возможностей, а сценарии позво­
ляют объяснить интерпретатору РНР, что вы хотите. Вы можете вывести текст на Web-страницу
или сохранить данные, которые вводятся пользователем в форму на Web-странице. РНР также мо­
жет выполнять действия, которые не свойственны Web-узлам, например записывать файлы в ката­
лог на жестком диске. Можно написать простой сценарий, который вьводит приветствие в окне
Web-браузера. Можно создать сложный сценарий, который выводит в окне браузера разный текст
для разных людей, запрашивает пароль у посетителей Web-узла или отказывает в доступе тем
посетителям, которые не ввели нужный пароль. Приложение часто состоит из двух или не­
скольких сценариев, которые совместно выполняют требуемые действия. Большие, сложные
приложения, такие как приложения электронной коммерции, могут состоять из многих сценариев.
В этой главе речь пойдет о том, как написать собственный сценарий. Мы обсудим опера­
торы вывода, которые чаще всего встречаются в сценариях РНР. И, наконец, будет проде­
монстрирована важность документирования сценариев.

Написание onefiatfiofioe !PH!P
Оператор РНР определяет, какие действия необходимо выполнить. Одним из наиболее
популярных операторов РНР является echo. Он предназначен для вывода информации. Рас­
смотрим следующий пример использования оператора echo:
echo "Привет";
Оператор echo выводит все, что находится между двойными кавычками (""). Поэтому
в данном случае отобразится строка Привет.
Оператор echo является простым (simple statement). Все простые операторы в языке РНР
заканчиваются точкой с запятой (;). Интерпретатор РНР считывает простые операторы до
тех пор, пока не встретит символ ; (или закрывающий дескриптор, который рассматривается
далее в этой главе). При этом все пробелы игнорируются. Не имеет значения, сколько счита­
но строк, каков смысл или синтаксис оператора. Все содержимое сценария просто считывается до точки с запятой и интерпретируется как один оператор.

Отсутствие точки с запятой является распространенной ошибкой, в результате кото­
рой выводится сообщение об ошибке. Оно может выглядеть следующим образом:
Parse error: expecting ' , ' " or ' ; ' ' in f i l e . p h p on l i n e 6
Обратите внимание, что в сообщении указывается номер строки, где содержится ошибка.
При этом строка, в которой пропущена точка с запятой, является предыдущей по отношеь ию
к указанной в сообщении, т.е. в данном случае точка с запятой отсутствует в пятой строке.
Для написания сценариев РНР можно воспользоваться специальным редакторам,
в котором будут отображаться номера строк. В этом случае будет проще aHanj зировать код сценария. Иначе придется отсчитывать номера строк, чтобы найти ту,
в которой содержится ошибка. Действительно, если сценарий состоит из б строк то
пересчитать их не так уж и сложно. Но если в сценарии содержится 553 стрски,
то жизнь перестает быть веселой. Необходимо отметить, что многие редакторы
позволяют указать номер строки, к которой необходимо перейти.
В РНР весь сценарий можно разместить в одной длинной строке, разделяя при этом п х>стые операторы точкой с запятой. Но в этом случае анализ и чтение сценария существенно
затруднятся. Таким образом, простые операторы лучшее размещать в разных строках.
Иногда несколько операторов помещают в один блок, заключенный в фигурные скобки
({ }). Операторы в блоке выполняются вместе, как один оператор. Очень часто блоки кода
используются совместно с условным оператором, где набор инструкций выполняется при i ;ыполнении некоторого условия. Рассмотрим следующий пример:
if (время_суток == полночь)
{

одеть пижаму;
почистить зубы;
лечь в кровать;
}

Фигурные скобки указывают, что набор операторов в блоке будет выполняться как одно
целое. В полночь, т.е. когда время_суток = полночь, будут выполнены все три действия,
указанные в блоке. В противном случае ничего делать не надо (не надо одевать пижаму, чис­
тить зубы, идти ложиться спать).
Операторы, использующие блоки кода (как, например, оператор i f ) , называются слож­
ными (complex statement). В этом случае интерпретатор РНР считывает весь сложный опера­
тор, не останавливаясь перед первым символом точки с запятой. Он допускает существование
нескольких блоков кода и ищет последнюю фигурную скобку последнего блока. Следует такке
отметить, что перед закрывающей фигурной скобкой стоит точка с запятой, а после — нет.
Операторы внутри блока вводятся с отступом. Такое размещение влияет только на удоС очитаемость кода, но никак не на результат, выполнения. Человеку, анализирующему код ci ;енария, будет намного легче определять, где начинается и заканчивается тот или иной блок.
Отсутствие закрывающей фигурной скобки является распространенной ошибкой, особен ю
если используется несколько вложенных блоков. Использование отступов позволит быстэо
найти недостающую скобку.

Написание сцена/гиев
Для написания полноценного сценария необходимо добавить несколько оператор эв
в файл, который имеет расширение .php. Однако, если сценарий не так уж прост или если
у вас нет опыта, будет разумным сначала написать код сценария на бумаге. Помните, что тщатель­
ное планирование позволит избежать многих ошибок при написании программного кода.
44

Часть I. Познакомьтесь с языком сценариев РНР

При создании сценария РНР для Web-узла его программный код необходимо каким-то
образом вставить в HTML-код Web-страницы. Если же сценарий создается независимо от
Web, то операторы РНР помещаются в отдельный файл, который вызывается напрямую.
В следующих разделах будет показано, как следует поступать в обоих случаях.
Как сервер обрабатывает файлы РНР
| Если пользователь обращается к обычному файлу HTML (с расширением . h t m l или . h t m ) , Web-сервер
: передает его код напрямую браузеру. Браузер, в свою очередь, обрабатывает полученный файл
с дескрипторами H T M L и выводит Web-страницу. Если же пользователь сгенерировал запрос к файлу РНР |
(с расширением . p h p ) , Web-сервер осуществляет обработку кода РНР (а не отправляет его сразу браузеру).
При этом выполняются следующие шаги.
1. Web-сервер просматривает исходный файл в режиме HTML, т.е. он никак не обрабатывает дескрипторы i
HTML, а отправляет их напрямую браузеру.
| 2. Просмотр в режиме HTML выполняется до тех пор, пока не будет найден открывающий дескриптор РНР
|
().
| 5. Найдя закрывающий дескриптор ?>, Web-сервер снова переключается в режим HTML и продолжает
выполнять действия, начиная с п. 1.

Вставка операторов РНР в HTML-код
При использовании языка РНР для создания Web-узлов операторы РНР необходимо
вставлять в HTML-код Web-страницы. При этом соответствующие файлы должны иметь
расширение . php, чтобы Web-сервер мог знать о наличии кода РНР. (Администратор Webсервера может использовать и другие расширения файлов, которые могут содержать опера­
торы РНР, например .php4 или .phtml. Однако расширение .php является наиболее попу­
лярным, поэтому оно и будет использоваться в данной книге.)
Для вставки кода РНР в файл HTML используются дескрипторы, наподобие тех, что при­
меняются в файлах HTML. Общий синтаксис имеет следующий вид:


Можно также использовать сокращенную форму дескрипторов РНР , что
позволяет немного сократить код. Для того чтобы активизировать или отключить
использование сокращенных дескрипторов, следует внести соответствующие из­
менения в конфигурационный файл php . i n i .
Иногда использование сокращенных дескрипторов является не очень хорошей
идеей. Действительно, если разместить Web-узел на сервере, который не поддер­
живает сокращенные дескрипторы, PHP-код будет обрабатываться некорректно,
т.е. для переносимости кода лучше применять полные дескрипторы РНР.

Глава 3. Создание первого сценария РНР

45

Все операторы, находящиеся между открывающим и закрывающим дескрипторами РНР,
передаются Web-сервером на обработку интерпретатору РНР. После выполнения всех де) ICTвий код РНР опускается, а результат передается обратно Web-серверу. Тот, в свою очередь,
отправляет на сторону пользователя (т.е. браузеру) код HTML и результаты обработки сцена­
рия РНР. При этом код РНР в браузере не отображается.
Например, добавим в файл HTML следующие строки кода РНР. При этом не забудьте со­
хранить этот файл с расширением . php:


При получении Web-сервером запроса на файл с расширением . php он проверяет егс на
наличие дескрипторов РНР. Найдя открывающий дескриптор

дескрипторы HTML


В результате в окне браузера отобразятся две строки.

Использование РНР независимо от Web
РНР можно использовать в качестве самостоятельного языка написания сценариев, не.ависимо от Web. Для этого в РНР предназначен специальный интерфейс CLI (Command Li ie
Interface— интерфейс командной строки). Версия РНР CLI отлична от той, которая исполь­
зуется для работы с Web-серверами (обычно называемой РНР CGI), и устанавливается незави­
симо. В приложении А приводятся более подробные инструкции по установке интерфейса CLI
Если вы намерены использовать интерфейс командной строки CLI для РНР, вы, скор ;е
всего, работаете на компьютере под управлением операционной системы Unix или Linux.
Программисты, работающие в Windows, вряд ли будут использовать РНР в качестве само­
стоятельного языка написания сценариев (хотя в случае необходимости это можно сделан).
В данном разделе речь пойдет об использовании версии РНР CLI в операционных системах
Linux/Unix, но большая часть информации останется верной и для Windows. (В некоторых
случаях будут указаны соответствующие расхождения.)
Рассмотрим следующий сценарий РНР:


46

Часть I. Познакомьтесь с языком сценариев РНР

i Я§4
> Щ4^ф-

Выполнение сценариев РНР в операционных системах Linux/Unix

:

Если у вас уже имеется опыт запуска сценариев оболочки (shell script) или сценариев Perl в операционных
1 системах Linux/Unix, то выполнение PHP-сценариев не составит особого труда. Нужно просто добавить строку,
указывающую расположение интерфейса командной строки РНР CLI, и тогда вызов сценария можно
осуществлять напрямую:

#! /usr/bin/php
\

| Первая строка указывает, что сценарий будет выполнен с использованием программы, расположенной по адресу
• / u s r / b i n / p h p . В операционной системе Windows эта строка не работает, хотя и не приводит к генерации
ошибки. Строку # ! / u s r / b i n / p h p можно спокойно включать при создании сценариев РНР для Linux/Unix, не |
особенно заботясь о том, что при переходе к Windows она не будет работать.
I Для запуска сценария РНР необходимо ввести его имя. Это можно сделать в каталоге, в котором содержится |
j исходный файл, или указать полный путь к нему. Например, если файл, содержащий приведенный выше '
| фрагмент кода, называется t e s t . p h p , то для его запуска следует ввести имя

j test.php
; или указать полный путь к нему:

• /mystuff/test.php
j He забывайте также о том, что для выполнения этого файла, как и для запуска любого другого сценария,
нужно иметь соответствующие разрешения.

Если назвать этот файл t e s t c l i .php, то для его запуска необходимо ввести следующую
строку (при условии, что он находится в том же каталоге, где установлен РНР CLI):
php t e s t c l i . p h p
Можно также указать полный путь к интерпретатору РНР:
/usr/local/php/cli/php testcli.php

Если же сценарий РНР требуется запустить в операционной системе Windows, следует
воспользоваться консольным режимом ввода команд. Для этого необходимо выбрать коман­
ду меню StartoPrograms^Accessories^Command Prompt (Пуск^Программы^Стандартные1^Командная строка).
Основные отличия версии CLI от CGI состоят в следующем.
S Вывод заголовков HTTP. Поскольку в версии CGI результат выполнения
сценария передается сначала Web-серверу, а потом браузеру, к нему добавля­
ются заголовки HTTP (информация, с помощью которой Web-сервер и брау­
зер взаимодействуют друг с другом). Таким образом, в предыдущем примере
версия РНР CGI выдаст следующий результат:
Content-type: text/html
X-Powered-By: PHP/5.0
Это привет от РНР

Первые две строки в окне браузера не отображаются, но они необходимы для
корректной работы Web-сервера. В свою очередь, версия РНР CLI автомати­
чески не передает заголовки HTTP, а просто выведет одну строку:
Это привет от РНР

Глава 3. Создание первого сценария РНР

47

S Формат сообщений об ошибках. При использовании версии PHP CGI со об­
щения об ошибках будут отформатированы с помощью дескрипторов HTML,
поскольку, вероятнее всего, они будут отображаться в браузере. Сообщения
об ошибках в версии PHP CLI никак не форматируются.
•/ Использование значений по умолчанию для параметров argc и arirv.
Переменные a r g c и a r g v используются для передачи данных в сценарий из
командной строки (как в С и других языках). Вряд ли вы будете использовать
эти параметры в версии CGI, в то время как в CLI — скорее всего, будете. По­
этому по умолчанию эти параметры доступны в CLI и недоступны в О31.
(Более подробно переменные a r g c и a r g v описаны в главе 5.)
При использовании РНР для командной строки можно воспользоваться некоторыми до­
полнительными параметрами (ключами). Например, ключ - v позволяет вывести версию РНР.
Для этого нужно ввести следующую строку:
php -v
В табл. 3.1 приведены наиболее полезные параметры командной строки.
Таблица 3.1. Параметры командной строки РНР
Параметр

Назначение



Определяет путь к используемому файлу p h p . i n i . Версией CLI может использоваться свой
собственный файл p h p . i n i , например - с / u s r / l o c a l / p h p / c l i / p h p . i n i (Более
подробную информацию о файле p h p . i n i можно найти в приложении А.)



Идентифицирует запускаемый сценарий. Например, php - £

-h

Выводит справочную информацию

-i

Выводит информацию о РНР, которая аналогична результатам функции p h p i n f о ()

-1

Проверяет сценарий на наличие ошибок, но не выполняет его



Выводит список скомпилированных модулей РНР. (Более подробно модули описаны в главе 14.)



Выполняет код РНР, введенный в командной строке.
Например, php - r ' p r i n t ( ' П р и в е т ' ) ; '
Выводит номер версии РНР

/myfiles/testcgi.php

(см. главу 2)

-v

Созс/ание nefi0oio сцена/гил THJ*
За многие годы сложилась такая традиция, что первая созданная программа должна выв >
дить строку Здравствуй, мир. Если вы изучали HTML, то вам, наверное, доводилось осу­
ществлять эту процедуру и вы использовали примерно следующий код:

HTML-nporpaMMa

3дравствуй, мир!



Если отобразить содержимое этого файла в браузере, получим очевидный результат:
Здравствуй, мир!

48

Часть I. Познакомьтесь с языком сценариев РНР

Ваш первый сценарий на РНР будет выполнять абсолютно те же действия. Ниже приведен
фрагмент кода, который содержит дескрипторы HTML и PHP-код и выводит в окне браузера
строку Здравствуй, мир!

CueHaprai P H P < / t i t l e x / h e a d >




Результат выполнения этого сценария будет таким же, как и результат вывода файла HTML.
Нет смысла просматривать файл РНР, используя напрямую браузер, т.е. для пе­
рехода к файлу нет смысла выбирать в меню браузера команду File^OpenO
Browse (ФайлООткрыть^Обзор). Для обращения к файлу необходимо указать
полный URL-адрес сценария РНР в адресной строке браузера (см. главу 2). Если
код РНР не выполняется, а просто отображается в окне браузера, значит, вы об­
ратились к нему не через URL-адрес.
В приведенном выше примере фрагмент РНР состоит из следующих строк:


Между открывающим и закрывающим дескрипторами РНР содержится только один опе­
ратор echo, который выводит строку, заключенную в двойные кавычки (" ").
Таким образом, в результате выполнения сценария браузеру будет передана следующая
строка:
3дравствуй, мир!

Если фрагмент PHP-кода заменить этой строкой, то получим обычный HTML-файл. При
этом в обоих случаях результат будет один и тот же, точно так же, как и исходный код, обра­
батываемый браузером (чтобы его увидеть в меню браузера, следует выбрать команду
View=>Source (ВидОПросмотр HTML-кода)).

2)ей1альнее о