Часть I. Основные характеристики РНР
Глава 1 Введение в РНР
1.1. Из истории РНР
Допустим, вы вышли за рамки статических Web-страниц и вам требуется обрабатывать HTML-формы. Или вы хотите создать Web-страничку, которая осуществляла бы обработку введенных вами данных, обращаясь непосредственно базе данных. А возможно, вам надо запрограммировать электронный магазин, опрос посетителей вашего сайта, разнообразные счетчики посещений — язык РНР поможет вам реализовать все эти и многие другие задачи.
Возникает вопрос, а почему именно РНР, ведь множество программ, работающих через CGI (Common Gateway Interface — общий шлюзовой интерфейс, являющийся стандартом, описывающим HTTP-приложения), написаны на языке Perl, C/C++, Fortran, TCL, Unix Shell, Visual Basic, Apple Script и других подобных языках. Сервер передает запросы пользователя CGI-программе, которая их обрабатывает и возвращает результат своей работы на экран пользователя. В результате пользователь получает динамическую информацию, которая может изменяться под влиянием различных факторов. Разработчики всегда стремились создавать языки программирования, оптимально подходящие для всех условий работы в той или иной среде. Изучая в дальнейшем данную книгу, вы сможете понять, почему же создатель РНР — известный программист Расмус Лердорф (Rasmus Lerdorf) — начал разработку языка программирования, исполняющегося на стороне сервера.
Что касается, например, популярного языка программирования Perl, то это — очень хороший, мощный язык, но слишком велики системные издержки во время вызова программы на каждый запрос страницы, особенно в Windows. Поэтому в 1994 Г. появился совершенно новый язык, который и получил название РНР (Personal Home Page).
Сам язык программирования был написан буквально за день в промежутки между деловыми встречами Расмуса Лердорфа. Сначала это была простая, невзрачная CGI-оболочка, написанная на языке Perl, которая служила исключительно для специфических целей.
С течением времени при эксплуатации выяснилось, что оболочка обладает маленькой производительностью, и создателю ничего не оставалось, как переписать ее заново, исправив существующие ошибки. Узел Сети, на котором.находилось резюме, был чрезвычайно перегружен, и чтобы избавиться от значительных непроизвольных затрат, он переписал оболочку на языке С. Это позволило значительно увеличить скорость работы РНР. Пользователи сервера, где располагался сайт с первой версией РНР, попросили себе такой же инструмент. Затем, как неизбежно это случается, пользователи начали просить о большем количестве функций. Расмус Лердорф старался выполнить все пожелания пользователей и в результате наполовину собрал дистрибутив наряду с документацией и часто задаваемыми вопросами. И хоть он не предполагал, что кто-то другой будет пользоваться этим языком, довольно быстро РНР перерос в самостоятельный проект, и в начале 1995 г. вышла первая известная версия продукта. Имя этого первого пакета было Personal Home Page Tools (средствадля персональной домашней страницы). В то время РНР обладал более чем скромными возможностями. Он имел простейший анализатор кода, который понимал несколько специальных команд, а также разные утилиты для использования на домашней странице, необходимые для построения таких полезных вещей, как гостевая книга, счетчик, чат, системы статистики и т. д. В то же время Расмус Лердорф начал заниматься базами данных, чему положило начало написание инструмента для реализации SQL-запросов в Web-страницах. Это была отдельная CGI-оболочка, которая анализировала запросы SQL и облегчала создание форм и таблиц, основанных на этих запросах. Этот инструмент был назван Form Interpreter (FI — интерпретатор форм). После того как были добавлены функции работы с базами данных, вышла вторая версия продукта.
Различие между РНР и FI незначительное. И РНР, и FI созданы из одного итого же исходного текста. Когда происходит формирование пакета данных без какой-либо регистрации доступа или поддержки ограничения доступа, вызывается выполняемый модуль FI. Когда происходит формирование документов при помощи вышеперечисленных опций, используется РНР.
Сейчас РНР — это быстро развивающееся средство программирования, работающее на очень многих серверах в Интернете (рис. 1.1). Как средство разработки Web-приложений РНР сейчас является одним из самых популярных вместе с ASP, FrontPage и mod_perl. Благодаря этому языку появляется возможность легко создавать динамические сайты. Файлы, созданные таким образом, хранятся и обрабатываются на сервере. Когда посетитель запрашивает документ с РНР, скрипт обрабатывается не браузером посетителя, как, например, JavaScript, а сервером, и посетителю передаются только результаты работы. Точно также работает CGI-npoграмма, написанная на С или Perl. Но в отличие от CGI код PHP-программы можно встраивать в любое место HTML-страницы, что, конечно, является основным преимуществом перед CGI. Кроме того, сам язык очень прост для изучения и не требует каких-либо специфических знаний.
Рис. 1.1. Сайт www.php.net
PHP можно разделить на язык и библиотеку фикций. Существует большое количество инструментальных средств для PHP, интерфейсы ко всем популярным СУБД (системам управления базами данных), почтовым протоколам, разделяемой памяти, графическим файлам, архивам и множество других инструментов, с которыми вы сможете познакомиться в процессе изучения данной книги.
Язык настолько прост в использовании, что совсем скоро каждый программист в области Интернета сможет овладеть и применять полученные знания для решения все большего числа поставленных задач. Уже в наши дни PHP используется более чем на 2,5 млн сайтов.