Тайны и секреты компьютера - Антон Орлов
Шрифт:
Интервал:
Закладка:
Обычно web-сервер настраивается так, что на предмет наличия программ на PHP просматриваются файлы, имеющие расширение. php, phtml, остальные же файлы передаются в браузер пользователя без поиска в них команд PHP. Делается так для более быстрой работы сервера, а также для обеспечения возможности установки на сервере разных интерпретаторов (например, SSI — Server Side Includes, в технологии, в какой-то мере предшествовавшей PHP), так как тогда каждому из интерпретаторов назначаются свои расширения для обработки соответствующих файлов.
Так как PHP-код полностью исполняется на web-сервере, то в страницах, выдаваемых браузеру, он будет отсутствовать, и если кто заинтересуется вашим опытом программирования, то вам придется отправлять ему этот код по почте, так как при просмотре сайта каким-нибудь образом узнать исходный PHP-код его страниц нельзя.
Работа с формами
Значения переменных можно передавать между различными страницами сайта — с помощью использования форм. Формой называется конструкция, состоящая из поименованных элементов особых типов, заключенных между HTML-тэгами <form…> и </form>. В качестве элементов формы могут выступать поля ввода текста, кнопки, выпадающие меню, переключатели, квадратики для отметки галочкой — checkbox'ы, а также картинки формата jpg или gif.
Наиболее важным свойством формы является то, что в ее заголовке — в открывающем тэге <form…> можно указать адрес какого-либо файла, и тогда при его загрузке в программный код этого файла, если он будет там присутствовать, передадутся значения всех переменных, установленных в этой форме — в частности, значения всех элементов формы, как если бы эти значения были установлены в программе, расположенной в самом загружаемом файле. Таким образом можно передавать значения переменных между различными web-страницами, используя их в программном коде. Имена переменных соответствуют тем именам, которые были даны элементам формы в их тэгах, а значения — соответственно значениям этих элементов: для поля ввода текста — введенному тексту, для переключателя или checkbox'а — True при отмеченном и False при неотмеченном, для рисунка — координаты указателя мыши относительно верхнего левого угла изображения, для выпадающего меню (элемент <select name="имя"><option value="text1">text</option>…</select>) — значение параметра value выбранного пункта option.
Пример создания и применения формы приведен ниже, в разделе "Практическое использование".
Зачем он нужен?
Можно спросить: а зачем же может вообще потребоваться PHP? Разве обычных HTML и пары JavaScript не достаточно для создания красивой web-страницы?
Ну, во-первых, PHP может очень серьезно облегчить работу создателя сайта. С помощью команды include() можно автоматически вставлять один и тот же фрагмент HTML-кода во множество страниц, просто поместив в них эту команду с именем файла, содержащего код общей части. Причем этот код тоже может меняться в зависимости от страницы, в которую он включается, — достаточно в этой странице установить значение какой-либо переменной, а в коде общей части поместить инструкцию if, результат работы которой зависит от этого значения. В результате для обновления такой общей части будет достаточно отредактировать один файл — тот, который ее, собственно, и содержит, — и тогда для посетителей сайта соответственно изменятся все его страницы, как если бы вы все их вручную отредактировали.
Работа web-мастера по поддержке сайта при использовании PHP заметно облегчается. К примеру, немного поработав, можно сделать сценарий, «пробегающий» по всем файлам в каком-либо каталоге и «вытаскивающий» оттуда какие-либо фрагменты (например, содержимое тэгов «meta» — функция get_meta_tags). Таким образом можно, скажем, автоматически создавать оглавления журналов или библиотек: стоит поместить в каталог новую статью (оформленную согласно определенным правилам), как она тут же станет появляться в оглавлении на главной странице без необходимости эту главную страницу обновлять вручную.
С помощью PHP можно серьезно облегчить частое обновление страницы — так, если страница содержит часто меняющуюся вставку (например, новости), то будет неплохо поместить на место этих новостей инструкцию include ("file"), а в этом файле разместить текст новостей. В результате при обновлении новостей редактированию придется подвергать лишь сам их текст, а не HTML-код заглавной страницы, что и самому делать легче, и неопытному помощнику доверить можно.
Помощь web-мастеру и службе поддержки web-ресурса — это лишь весьма малая часть функций PHP. Используя PHP, можно обогатить сайт огромным количеством новых возможностей, делающих его удобным и нужным для посетителя. Так, с помощью функции mail() легко обеспечить отправку почтового сообщения по какому-либо адресу со страниц сайта, — например, мнения посетителя о сайте или вопроса его владельцу. Сделать гостевую книгу, чат или форум на PHP тоже возможно, в Сети нетрудно найти немало уже готовых подобных сценариев. В следующем разделе будет рассказано, как с помощью PHP улучшить удобство работы с сайтом, содержащим множество однотипных небольших разделов, или создать мини-Интернет-магазин.
Одним из наиболее заметных достоинств PHP является возможность легкой работы с серверами баз данных. Ранее, до появления этого языка, задание, выражающееся словами "приделать базу данных к web-странице", было довольно трудным и малодоступным для начинающих web-дизайнеров. Приходилось либо самостоятельно разрабатывать хитроумные скрипты, взаимодействующие как с программой управления базой данных, так и с web-страницами сайта, либо закупать их у фирм-разработчиков. С помощью же PHP использование базы данных на сайте стало чуть ли не элементарным. Для работы с подавляющим большинством типов баз данных в PHP есть встроенные функции, поэтому теперь для достаточно лишь установить на web-сервере программу работы с базой данных (наиболее часто используется бесплатная MySQL — http://www.mysql.com) и включить в текст PHP-сценария команды работы с нею (их список приведен в описании языка вместе с примерами использования).
Возможности PHP можно весьма серьезно расширить с помощью дополнительных модулей, содержащих различные функции. Эти модули при необходимости размещаются на web-сервере, на котором установлен PHP-интерпретатор. Их можно загрузить с адреса http://www.php.net, там же в разделе документации приведено и полное их описание. (В том web-сервере с установленным PHP, который распространяется с сайта http://php.spb.ru, никаких дополнительных модулей нет для уменьшения размера дистрибутива.) Например, модуль Zlib позволяет работать из программы на PHP с архивами в формате Gzip, а модуль libswf — с Flash-презентациями, создавая их и редактируя прямо из программы на сервере. Так как PHP — развивающийся язык, то новые модули появляются довольно часто, однако использовать их можно лишь после установки на web-сервер, что провайдеры хостинговых услуг могут не сделать. Поэтому при желании использовать функции из какого-либо модуля нужно сначала проверить, поддерживает ли их web-сервер, на котором вы собираетесь размещать сайт.
Сделать это можно, либо разместив на сервере страницу со строчкой <?php phpinfo()?> и загрузив ее с сервера в браузер (на ней будет отображена информация о версии PHP, параметрах web-сервера и многом другом, в том числе дополнительных модулях), либо попросту задав вопрос группе технической поддержки сервера.
PHP можно использовать и для написания полноценных программ, работающих и на локальном компьютере и не требующих для своего выполнения ни браузера, ни web-сервера. В этом случае вместе с программой должен поставляться также и интерпретатор этого языка. Однако рассмотрение такого способа его применения выходит за рамки и этой книги, и большинства общедоступных руководств.
Практическое использование.
Вот несколько примеров использования PHP на реальных сайтах, существующих в российском Интернете.
Выборочная загрузка
1. Сайт www.harchikov.ru посвящен творчеству популярного певца-барда Александра Харчикова. На сайте должны были быть представлены вышедшие альбомы певца в количестве 15 штук и записи песен каждого альбома в MP3-формате. При создании сайта возникла необходимость обеспечить удобную навигацию. Общепринятый способ — ссылки на страницы с описанием каждого из альбомов и песнями из него — имел тот недостаток, что посетитель, желающий просмотреть не один альбом, а сразу несколько, был бы вынужден постоянно переходить со страницы на страницу, делая лишние усилия. Кроме того, в случае разрыва связи во время загрузки какого-либо файла посетитель, ушедший на другую страницу, был бы вынужден снова возвращаться на ту, с которой он этот файл загружать начал, тратя время на ее поиск. Недостаток другого варианта — размещения информации о всех альбомах на одной странице — ясен: размер этой страницы получился бы очень большим, а интересная посетителю информация могла бы занимать лишь небольшую ее часть.