PHP: Полезные приемы
Автор: Антон Орлов, orlovs.pp.ru

  Главная   Учебник   Статьи   FAQ   Книги   Ссылки  

Глава 1

Введение

Когда-то давно, еще в прошлом веке, для того, чтобы сделать сайт "на мировом уровне", достаточно было просто уметь делать web-страницы на HTML и обладать художественным вкусом. Спустя не-которое время требования усложнились: использование JavaScript и Dynamic HTML стало рутинным и дизайн сайта, не имеющего подоб-ных "украшений", считался устаревшим. Вскоре правилом "хорошего тона" для корпоративного сайта стало применение сложных программ на Perl или C++, а создавать такие сайты стало по силам, пожалуй, лишь коллективам дизайнерских студий.

Однако простые web-дизайнеры не желали мириться с такой си-туацией. И на свет появился PHP - язык программирования, обла-дающий возможностями сложных скриптовых языков, но в то же время удивительно простой и легкий в изучении и применении. PHP расшифровывается как "PHP: Hypertext Preprocessor" (в названии ис-пользуется такой прием, как рекурсия: наличествующая в расшиф-ровке аббревиатура "PHP" вновь может быть расшифрована как "PHP: Hypertext Preprocessor" - и так до бесконечности). Этот язык благода-ря своей простоте и мощности быстро достиг огромной популярности среди web-мастеров, и количество сайтов, использующих PHP, умно-жается с каждым днем. Немаловажно и то, что он бесплатен для ис-пользования.

В этой небольшой книге будет рассказано о том, как использовать PHP для того, чтобы сделать сайт функциональным и удобным, чтобы предоставить его посетителям (да и самому web-мастеру) новые воз-можности по работе с информацией на сайте. Основной упор в изло-жении сделан именно на практическое применение - после кратких сведений о синтаксисе и основных командах PHP в брошюре приво-дятся тексты реальных работающих сценариев, каждый из которых вполне может пригодиться практически на любом сайте. Причем в сценариях комментируется и разбирается каждая строчка кода, что позволяет использовать их тексты еще и в обучающих целях, - для изучения структуры языка и принципов написания программ на нем.

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

Несколько терминов

Web-программирование - разработка любых программных про-дуктов, предназначенных для работы на сайтах World Wide Web. Строго говоря, даже разработка web-страниц на чистом HTML явля-ется web-программированием, ведь при просмотре страницы браузер фактически исполняет код HTML, форматируя текст согласно инст-рукциям этого языка. В настоящее время под web-программированием понимают создание CGI-приложений и исполь-зование на web-странице технологий JavaScript и VBScript для дости-жений сложных эффектов.

Web-сервер - программа, запущенная на узле сети Интернет и вы-дающая посетителям этого узла web-страницы с него по их запросам. Также web-сервером часто называется узел, на котором эта программа запущена, или даже компьютер, являющийся таким узлом.

CGI (сокращение от Common Gateway Interface) - технология, позволяющая запускать на web-сервере программы, могущие полу-чать данные от посетителей сайтов, поддерживаемых этим web-сервером, и в свою очередь выдавать им обработанные данные в виде web-страниц или других файлов. Для использования технологии CGI программа-web-сервер должна удовлетворять определенным крите-риям - "поддерживать CGI". Если программа, запускаемая на web-сервере, представлена не двоичным кодом (т.е. скомпилированным файлом), а текстовым, то для ее выполнения требуется программа-интерпретатор того языка, на котором написана эта программа. Такой интерпретатор включается в состав web-сервера и вызывается им при необходимости заняться выполнением программного кода.

CGI-сценарий (CGI-скрипт) - программа (в текстовом виде), предназначенная для исполнения на web-сервере. Для создания CGI-скриптов можно использовать любой язык программирования - важно лишь, чтобы на том web-сервере, где предполагается эту программу запускать, имелся интерпретатор этого языка.

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

Немного о web-программировании

Все языки программирования, используемые при разработке web-сайтов, можно разделить на две большие группы.

К первой будут относиться те из них, код которых выполняется на компьютере посетителя сайта - в его браузере. Это известные всем JavaScript, VBScript. Программы на этих языках встраиваются в код web-страниц (или выносятся в отдельный файл с вызовом из web-страниц, но браузер все равно обрабатывает такие вынесенные про-граммы как если бы они были встроены в код страницы).

Во вторую же группу можно включить те языки, программы на ко-торых выполняются на том компьютере, где расположен web-сервер. Эта группа будет гораздо более обширной, - дело в том, что в прин-ципе на web-сервере могут исполняться программы на любом языке (даже командных .bat-файлов MS-DOS), важно лишь, чтобы на нем была установлена программа-интерпретатор этого языка, удовлетво-ряющая особым требованиям - стандарту CGI, которым также должен удовлетворять сам web-сервер.

PHP относится ко второй группе - программа на PHP исполняется на web-сервере. Однако от других CGI-языков PHP очень сильно от-личается в лучшую сторону, - прежде всего своей простотой. Созда-вая программы на PHP, нет необходимости учитывать все те много-численные мелочи, которые отравляют жизнь программистам на Perl или C++: не надо заботиться о правах доступа к файлам сценария, не надо прописывать точные пути к различным модулям, нет необходи-мости следить за отсутствием в файле скрипта недопустимых симво-лов. Синтаксис языка таков, что он допускает его легкое освоение как начинающим программистом, так и тем, кто уже использовал ранее какой-либо язык программирования. Можно целиком и полностью сосредоточиться на решаемой задаче и не думать о мелочах. Именно это и делает PHP весьма хорошим выбором для web-дизайнера, кото-рый, начав его использовать, может вообще забыть о каких-либо дру-гих CGI-языках.

(Впрочем, если исходить из механизма действия, то PHP более правильно назы-вать не "CGI-языком", а препроцессором - что, собственно, отражено даже в его названии. В то время как CGI-приложение просто выдает некие данные в браузер посетителя, препроцессор просматривает все или некоторые файлы, выдаваемые web-сервером посетителю, и ищет в них определенные команды, которые и выпол-няет. Именно такой способ работы и позволяет указывать код программ на PHP не-посредственно в тексте web-страниц.)

Одним из наиболее заметных достоинств 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 (рис.1.1), пара-метрах web-сервера и многом другом, в том числе дополнительных модулях), либо попросту задав вопрос группе технической поддержки сервера.

Рис.1. Вся информация о сервере и интерпретаторе - одной ко-мандой phpinfo().

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

Hosted by uCoz