Web-программирование
Все языки программирования, используемые при разработке web-сайтов, можно разделить на две большие группы.
К первой будут относиться те из них, код которых выполняется на компьютере посетителя сайта — в его браузере. Это известные всем JavaScript, VBScript, Java-апплеты. Программы на этих языках встраиваются в код web-страниц (или выносятся в отдельный файл с вызовом из web-страниц, но браузер все равно обрабатывает такие вынесенные программы как если бы они были встроены в код страницы).
Во вторую же группу можно включить те языки, программы на которых выполняются на том компьютере, где расположен web-сервер. Эта группа будет гораздо более обширной, — дело в том, что в принципе на web-сервере могут исполняться программы на любом языке (даже командных. bat-файлов MS-DOS), важно лишь, чтобы на нем была установлена программа-интерпретатор этого языка, удовлетворяющая особым требованиям — стандарту CGI, которым также должен удовлетворять сам web-сервер.
РНР относится ко второй группе — программа на РНР исполняется на web-сервере. Однако от других CGI-языков РНР очень сильно отличается в лучшую сторону, — прежде всего своей простотой. Создавая программы на РНР, нет необходимости учитывать все те многочисленные мелочи, которые отравляют жизнь программистам на Perl или C++: не надо заботиться о правах доступа к файлам сценария, не надо прописывать точные пути к различным модулям, нет необходимости следить за отсутствием в файле скрипта недопустимых символов. Синтаксис языка таков, что он допускает его легкое освоение как начинающим программистом, так и тем, кто уже использовал ранее какой-либо язык программирования. Для тестирования РНР-программ на локальном компьютере необязательно устанавливать на нем ту же операционную систему, что и у провайдера хостинга сайта, где эти программы будут применяться, — достаточно лишь установить соответствующей web-сервер и подключить к нему модуль РНР. Можно целиком и полностью сосредоточиться на решаемой задаче и не думать о мелочах. Именно это и делает РНР весьма хорошим выбором для web-дизайнера, который, начав его использовать, может вообще забыть о каких-либо других CGI-языках.
Немного истории
В отличие от многих других языков программирования, РНР был создан не какой-либо корпорацией или гением-программистом, а обычным пользователем, Расмусом Лердорфом, в далеком 1994 году. Цель разработки языка была проста — сделать домашнюю страничку Расмуса более интерактивной, а значит, и более привлекательной для посетителей. Расмус разработал базовый синтаксис и написал первый интерпретатор своего языка, получившего название Personal Home Page Tools — т. е. РНР. Этот интерпретатор мог обрабатывать лишь несколько основных команд, однако начало было положено.
В 1995 году Расмус доработал интерпретатор РНР, соединив его с другой своей программой, умевшей обрабатывать HTML-формы (именовавшейся FI — от "Form Interpretator"), а также сделал так, что интерпретатор, получивший название РНР/FI Version 2, мог становиться частью web-сервера. Последнее сделало программы на РНР очень быстроисполняющимися. Кроме того, в том же 1995 году интерпретатор РНР был дополнен возможностями обработки новых команд, в частности, функций работы с сервером баз данных MySQL и автоматического создания gif-файлов (последнее, к примеру, может быть использовано для генерации кнопок-счетчиков посещений). РНР/FI1 был размещен в Сети для всеобщего использования, и началось его повсеместное распространение.
Web-мастера быстро оценили достоинства нового языка web-программирования — легкость освоения и богатство возможностей, и вскоре традиционные Perl, C++ стали сдавать ему свои позиции. Так как исходный код интерпретатора был открыт (а сам он, ясное дело, бесплатен), то энтузиасты стали заниматься его доработкой, и летом 1998 года появился на свет РНРЗ — детище Зива Сураски и Энди Гутманса (Zeev Suraski and Andi Gutmans). В этой версии интерпретатора были исправлены баги предыдущей версии и добавлены новые функции, что еще больше поспособствовало его победному шествию по миру. Уже к концу 1999 года число сайтов, построенных на основе РНР, перевалило за миллион. Весьма важным достоинством РНР также являлось то, что его можно было использовать в различных операционных системах — от Windows до Unix и Linux.
В 2000-м году вышла четвертая версия интерпретатора РНР, разработанная компанией Zend Technologies, дополненная множеством новых функций. В настоящее время именно она является наиболее распространенной.
С чего начать?
Основным источником сведений по РНР является официальный сайт его разработчиков — www.php.net. Однако тем, кто желает разработать сайт с применением РНР, лучше прежде всего посетить русский сайт "РНР по-русски", расположенный по адресу http://php.spb.ru, и загрузить с него два файла — полное описание РНР на русском языке (точный перевод руководства по РНР с сайта www.php.net) и web-сервер Apache с РНР-модулем, сконфигурированным для немедленного использования. Оба файла подготовил и разместил в Сети ведущий этого сайта Дмитрий Бородин.
Готовый к использованию web-сервер вместе с интерпретатором РНР, а также системой управления базами данных MySQL вы также можете найти на сайте проекта "Денвер", расположенном по адресу http://dklab.ru/chicken/web. В отличие от вышеупомянутого ресурса "РНР по-русски", ведущие проекта "Денвер" Дмитрий Котеров, Дмитрий Короленко, Игорь Светликов и Андрей Любченко регулярно обновляют свой проект, постоянно размещая на нем свежие версии web-сервера с набором компонентов. Однако установка "Денвера" более автоматизирована, нежели набора с сайта "РНР по-русски", и предусматривает значительно меньшую ее "управляемость".
"Денвер" можно порекомендовать тем, кто предпочитает автоматически получить на своем компьютере готовый к использованию web-сервер в целях изучения языка РНР и создания на нем программ, а "РНР по-русски" понравится тому, кто привык все, что ему надо, настраивать сам. Тем более что последнее будет весьма легко — достаточно внимательно прочитать комментарий Дмитрия с сайта и файлы Readme из дистрибутива.
Итак, первым делом установите на своем компьютере web-сервер Apache — из "Денвера" или "РНР по-русски" и освойте его использование. После этого вы сможете полноценно работать с программами на РНР на своем компьютере, не выходя в Интернет, например, тестировать разработанные с использованием РНР сайты.
Ну, а затем приступайте к изучению языка. В этой главе книги изложены самые основные его понятия и описаны базовые команды, с помощью которых можно создать неплохие РНР-программы. За остальной информацией обращайтесь к описанию языка, тем более что оно переведено на русский язык и снабжено массой примеров кода. Только помните, что в том дистрибутиве web-сервера, о котором говорилось выше, отсутствуют модули, расширяющие возможности РНР, так что некоторые разделы описания будут неактуальны. Впрочем, ничего не мешает вам загрузить нужные модули отдельно и установить их (на сайте http://php.spb.ru описано, как это сделать), однако первое время такая необходимость у вас вряд ли появится.
На сайте http://phpclub.unet.ru вы найдете множество примеров сценариев на РНР, сможете загрузить литературу на русском языке, получить от профессионалов в web-программировании ответ на свой вопрос или принять участие в каком-либо обсуждении или пообщаться с коллегами в чате. Архив Форума, расположенного на этом сайте, содержит в себе ответы практически на все мыслимые и немыслимые вопросы по web-программированию на РНР. Также здесь регулярно публикуются новости мира РНР-программирования, рассказывается о новых разработках в этой области, размещается информация о вакансиях web-дизайнеров и программистов на рынке труда. Также немало полезной информации есть в Web-клубе по адресу http://www.webclub.ru/materials/php3, в частности, руководство по РНР, представленное на сайте "РНР для всех", изначально размещалось именно там.