Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Орлов Л.В. Web-сайт без секретов (2-е издание, 2006).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.62 Mб
Скачать

Глава 3. Серверные скрипты

В свое время перед любым web-мастером встают вопросы такого типа: «как сохранить информацию на сервере», «как отправить результаты заполнения формы на е-мейл».

Сделать это невозможно только средствами браузера. Для реализации подобных вещей существует множество специальных языков. Самой большой популярностью пользуются perl и PHP. В чем их сходство и различие?

Часто путают понятие CGI и perl. CGI (Common Gateway Interface) — протокол обмена данными с программами. А perl — специальный язык высокого уровня, на котором и реализуются необходимые функции взаимодействия с операционной системой на сервере. В общем случае с помощью CGI можно запустить любое приложение на сервере и все, что будет из него (приложения) выведено на стандартный поток вывода, попадет в браузер. Параллельно приложение может произвести вывод данных в файл на сервере, послать на е-мейл или поместить (извлечь) что-то в базу данных.

Коренное отличие PHP от CGI заключается в том, что PHP является препроцессором HTML. Т.е. его работа построена по следующей схеме:

.phtml(.php3) --> php.exe --> браузер

Т.е. до того, как сервер «отдаст» файл браузеру, его просматривает препроцессор-интерпретатор. Что это значит? Файлы, которые подвергаются обработке препроцессором, должны иметь определенное расширение (обычно это .phtml или .php3, но эти значения можно поменять) и содержать (хотя это не обязательное требование) код для препроцессора. Код этот может быть оформлен следующими способами:

<?php инструкции ?>

Или:

<SCRIPT LANGUAGE="PHP">

инструкции

<SCRIPT>

Если нам необходимо вставить в обычную HTML страницу результат работы несложной функции, то это удобнее сделать с PHP, так как код может содержаться прямо в HTML коде страницы. Для CGI, в такой ситуации, нам придется либо выводить всю страницу из скрипта, либо использовать технологию Server Side Include.

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

И так что мы можем сделать с помощью PHP? Самый простейший пример:

<html>

<head>

<title>Тест</title>

</head>

<body>

<?php echo "Hello, World!"; ?>

</body>

</html>

Исходный текст документа в браузере выглядит так:

<html>

<head>

<title>Тест</title>

</head>

<body>

Hello, World!</body>

</html>

С помощью функции echo мы можем вывести все, что угодно в исходный текст документа. Теперь рассмотрим, что-то более полезное.

Как вы могли заметить, страницы на большинстве серверов содержат неизменную часть: навигационные панели, логотипы, кнопки и пр. Довольно трудно переписывать эти вещи каждый раз, когда что-то добавляешь на свой сайт. Часто раньше приходилось создавать новый «опыт» из шаблона, который, зачастую, занимал больше места, чем сам опыт. К счастью, в PHP есть функция подключения внешних файлов. Таких функций две (на самом деле, их три, но функция «virtual» используется только для сервера Апач, и является заменой стандартной директивы <!--virtual ...): include() и require(). Основное отличие этих функций состоит в том, что вторая включает текст файла в любом случае, а первая — только, если он еще не был включен. Например следующий текст мы поместим в файл header.inc.php3:

<html>

<head>

<title>Тест</title>

</head>

<body>

А следующий в файл footer.inc.php3:

</body> </html>

А в основном файле поместим вот это:

<?php

include("./header.inc.php3"); echo "Hello, World!"; include("./footer.inc.php3"); ?>

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