PHP: основы основ

Xakep, номер #048, стр. 048-090-1

Никита "Nikitos" Кислицин

(nikitoz@real.xakep.ru)

"У тебя есть сайт?" Кто-то, услышав в свой адрес подобный вопрос, ответит словами "нафиг надо?" Кто-то даст линк на одинокую html-страницу, на которой уже не первый год постится убогое "добро пожаловать". И только ты через пару лет сможешь гордо сказать: "Я содержу восемь новостных порталов суммарной посещаемостью миллион человек в сутки". Круто? Я тоже так думаю. Но html тут тебе не помощник - глупо делать сайт статичным, обновляя его по ftp :). Мы пойдем более прогрессивным путем.

Давай рассмотрим взаимодействие веб-сервера и клиента в тривиальном случае - при использовании статичного html'а. Клиент, например IE, отправляет серверу запрос. Тот, читая его, выполняет некоторую операцию - в рассматриваемом случае тупо читает закачанный ранее файл и передает его содержимое браузеру. Все это, конечно, здорово, но вот проблемка - очень уж геморно ручками править хтмл-файлы, чтобы обновить сайт - особенно если сайтов этих много. Для решения именно этой проблемы был разработан в 1994 году язык PHP - замечательная технология, впоследствии избавившая web-разработчиков от целой кучи однообразной механической работы.

Весь смак этой технологии заключается в том, что как такового html-файла на сервере нет, есть лишь некоторое правило, по которому формируется поток вывода браузеру. Эти правила и называются скриптами (script - "сценарий").

Концепции PHP-программирования

PHP - интерпретируемый язык, т.е. сценарии транслируются в машинные коды каждый раз при их выполнении. Файлы с php-кодом могут, в зависимости от настроек web-сервера, иметь различные расширения. Некоторые админы даже практикуют давать php-скриптам несвойственные языку расширения типа "htnl", "www" и т.д. - делают все, чтобы дать брату-хакеру как можно меньше информации о скрипте. Ну, оно и верно, я бы, чес слово, увидев скрипт index.htnl, не сразу бы догадался, на каком он языке написан: то ли perl, то ли php, а может и вовсе python :). Но обычно все же скриптам даются вполне определенные расширения - .php, .php3/4, .phtml и т.п.

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

PHP-код всегда начинается со строки . Следует заметить, что PHP-код можно вставлять в произвольном месте html-документа: как в самом его начале, так и в середине, в общем, где угодно. Как сказал кто-то из разработчиков языка: "PHP используется лишь там, где он действительно необходим". Предвижу гнев перловщиков и просто недальновидных людей: "Мешать код с дизайном - тупость!" - воскликнут они и будут, конечно же, правы :). Но ведь делать это тебя никто не заставляет - это всего лишь очень удобная для небольших сайтов возможность. В php есть функция include(), которая при грамотном использовании позволяет создавать сложнейшие по своей структуре проекты, не мешая хтмл-теги с пхп-кодом. К этому мы еще вернемся в будущих материалах.

Содержание  Вперед на стр. 048-090-2

ttfb: 535.87484359741 ms