Учебное пособие: Этапы создания веб-приложения. Основы РНР и MySQL

35. free ( post _ data ); // не забываем освободить выделенную в строке 17 память

36. }

37.

38. return 0;

39.}

Браузер в результате получит примерно следующий код (если "засабмитить" на эту программу POST -форму из последнего примера):

<h1>Здравствуйте!</h1>

<p>Параметры POST-формы: name=Vasya&okbutton=OK (длина тела запроса: 22)

Что при этом отобразится на экране пользователя, думаю, понятно без комментариев.

Как видите, даже простейшая программа вывода параметров не очень проста. Более того, по стандарту HTTP почти все не алфавитно-цифровые символы (в т.ч. и русские буквы) передаются в UrlEncoded -виде (%XX , где XX - шестнадцатеричный код символа), и, если добавить в приведенную Си -программу код расшифровки UrlEncode , она уже не поместится на экран. А это - всего лишь базовые операции. А как вырастет программа на Си , если необходимо работать с базой данных?

Впрочем, написание CGI -программ на Си - довольно редкое извращение. Чаще всего это делают на Perl - языке, разработанном специально для обработки текстовых данных, а наличие модуля CGI делает написание CGI -скриптов намного более простой задачей. Здесь я не буду Вас знакомить с Perl , отмечу лишь, что проблем остается достаточно: все же Perl не предназначен для Web , это язык универсальный. Да и сама технология CGI несовершенна: при каждом обращении происходит запуск программы (в случае с Perl - интерпретатор языка), а эта операция довольно ресурсоемкая: для домашней странички Васи Пупкина производительности, конечно, достаточно, но серьезный портал с десятками и сотнями тысяч хитов в сутки потребует уже огромных аппаратных мощностей.

А теперь взглянем на веб-сервер Apache . По своей природе он модульный, и позволяет подключать расширения добавлением одной строки в конфигурационный файл. Было бы прекрасно, если бы существовал скриптовый язык, заточенный именно под Web , подключаемый модулем к Apache , не так ли? Это и есть PHP .

В принципе, PHP можно скомпилировать и как CGI -приложение, и использовать так же, как и Perl - но это для нестандартных web-серверов или особых извращенцев.

2. PHP: Препроцессор Гипертекста

В 1994-м году программист по имени Rasmus Lerdorf, намучавшись с классическим перловым модулем CGI , решил написать несколько Perl -скриптов, чтобы было попроще создавать свою домашнюю страницу. Такой движок был готов к началу 1995 года и назывался Personal Home Page Tools (PHP) . Умел он не очень много – понимал простейший язык и всего несколько макросов.

Через некоторое время понадобилось обрабатывать формы, поэтому Rasmus Lerdorf и для увеличения производительности все переписал на C. Так появился к середине 1995 года Personal Home Page/Forms Interpreter (PHP/FI) 2.0. Приставка FI – присоединилась из другого пакета Rasmusa , который умел обрабатывать формы (Form Interpritator) . PHP/FI компилировался внутрь Apache и использовал стандартный API Apache . PHP скрипты оказались быстрее аналогичных CGI – скриптов, так как серверу не было необходимости порождать новый процесс. Язык PHP по возможностям приблизился к Perl , самому популярному языку для написания CGI -программ. Была добавлена поддержка множества известных баз данных (например, MySQL и Oracle ). Интерфейс к GD – библиотеке, позволял генерировать картинки на лету.

Труды свои Rasmus Lerdorf, следуя принципам Open Source, выложил на всеобщее обозрение, и на некотором количестве сайтов PHP/FI вполне успешно использовался, хотя был довольно примитивен. С этого момента началось широкое распространение PHP/FI.

В 1997-м на PHP/FI, в поисках инструмента для удобного web – программирования, наткнулись два других программиста - Andi Gutmans и Zeev Suraski. Идея им понравилась, но функциональность и скорость работы PHP/FI оставляли желать лучшего. Zeev Suraski и Andi Gutmans решили переписать внутренний движок для исправления ошибки интерпретатора и повышения скорости выполнения скриптов. 6 июня 1998 года вышла новая версия, которая была названа PHP 3. Язык получился универсальный и мощный, и вскоре привлек внимание множества web- разработчиков: к концу 1998 года PHP3 использовался на ~10% web - серверов. К лету 1999 года PHP 3 был включен в несколько коммерческих продуктов. По данным NetCraft на ноябрь 1999 PHP использовался в более чем 1 млн. доменах.

Скромное название "Personal Home Page" уже не очень-то соответствовало реальности, и название было изменено на (в лучших Unix-традициях) рекурсивное: PHP: Hypertext Preprocessor .

"Движок" PHP 4, названный Zend Engine , разрабатывался усилиями уже сформировавшегося и с тех пор непрерывно разрастающегося PHP community , и в 2000-м году вышла 4-я версия PHP , ставшая менее чем через полгода стандартом для web - программирования под Unix (и не только): каждый уважающий себя хостер предоставлял поддержку PHP . Сейчас разработан PHP5 , основанный на новом Zend Engine 2...

2.1. Что такое PHP?

PHP – это скрипт-язык (scripting language) , встраиваемый в HTML - код, который интерпретируется и выполняется на web - сервере. Проще всего это показать на примере:

Листинг prim_1

<html>

<head>

<title>Вас приветствует PHP</title>

</head>

< body >

<? php

echo "Привет Виктор Сергеевич! Учи меня!";

?>

К-во Просмотров: 700
Бесплатно скачать Учебное пособие: Этапы создания веб-приложения. Основы РНР и MySQL