PHP исполняется как модуль Apache (SAPI) или CGI-программа на стороне сервера. После обработки интерпретатором PHP, сервер заменяет код PHP результатом его выполнения и передает на браузер. Клиент получает сгенерированную PHP-скриптом страницу HTML.
Чтобы понять, как работает PHP, нужно сначала изучить, что происходит при загрузке веб-страницы в браузер пользователя. Когда пользователь посещает веб-сайт или нажимает ссылку на странице, браузер отправляет запрос на веб-сервер, на котором размещается сайт, для загрузки копии веб-страницы. Веб-сервер получает запрос, находит соответствующий файл веб-страницы в файловой системе и отправляет его обратно через Интернет в браузер пользователя.
Обычно веб-сервер не обращает внимания на содержимое файла, который он только что передал в веб-браузер. Веб-браузер понимает содержимое файла веб-страницы и знает, как его интерпретировать и отображать на дисплее.
Какое содержимое веб-страницы понимает веб-браузер. Современные веб-страница, вероятно, состоит из HTML, XHTML и JavaScript. Веб-браузер содержит код, который сообщает ему, что делать с этими типами контента. Например, он понимает структуру HTML в терминах рендеринга страницы и имеет встроенный JavaScript-интерпретатор, который знает, как выполнять инструкции в сценарии JavaScript. Однако веб-браузер абсолютно ничего не знает о любом скрипте PHP, который может быть встроен в документ HTML. Если браузеру была предоставлена веб-страница, содержащая PHP, он не знает, как интерпретировать этот код.
Учитывая, что веб-браузер ничего не знает о PHP на веб-странице, то, очевидно, что-то нужно делать с любым PHP-скриптом на странице до того, как он достигнет браузера. Здесь находится модуль предварительной обработки PHP. Модуль PHP, как упоминалось ранее, интегрирован в веб-сервер. Модуль сообщает веб-серверу, что, до отправки страницы содержащий скрипт PHP (выделенный специальными маркерами), нужно передать его в модуль предварительной обработки PHP и дождаться, когда PHP-модуль вернёт ему некоторый контент для замены фрагмента сценария. Модуль обработки PHP выполнит PHP-скрипт, написанный веб-разработчиком, и, основываясь на инструкциях скрипта, создаст выходные данные, понятные браузеру.
Следующий HTML-код содержит PHP-скрипт, который предназначен для вывода тега абзаца HTML:
<!DOCTYPE HTML> <html> <head> <title>Пример скрипта на PHP</title> </head> <body> <?php echo "<p> Эта строка HTML была сгенерирована PHP-скриптом, встроенным в HTML-документ</p>"; ?> </body> </html>
В этом примере вы видете стандартный HTML и часть кода заключенную в <?php и ?>. Это маркеры, которые определяют, где начинается и заканчивается встроенный PHP-скрипт. Когда веб-сервер находит их, то отправляет скрипт в модуль PHP. PHP-модуль интерпретирует его - преобразует в HTML и отправляет обратно на веб-сервер. Веб-сервер, в свою очередь, отправляет браузеру следующее:
<!DOCTYPE HTML>
<html>
<head>
<title>Пример скрипта на PHP</title>
</head>
<body>
<p> Эта строка HTML была сгенерирована PHP-скриптом, встроенным в HTML-документ</p>
</body>
</html>
После загрузки в браузер HTML код с встроенным скриптом PHP отображается так же, как и любая другая веб-страница.
Клиент получит только результат его выполнения:
Эта строка HTML была сгенерирована PHP-скриптом, встроенным в HTML-документ
Приведенный пример, безусловно, является упрощением возможностей PHP. Можно задаться вопросом, зачем нужно использовать PHP для вывода статического текста, который можно легко получить с помощью тегов HTML. Если вы заранее знаете, что именно должно отображаться на веб-странице, то использование HTML имеет смысл. Но, если вы разрабатываете страницу на которой нужно отображать данные о клиенте, то, в этом случае, она может служить только HTML-шаблоном со встроенным PHP-кодом, извлекающим учетную запись и информацию из базы данных. После обработки PHP-модулем, интегрированным в веб-сервер для каждого клиента будут выведены его данные.
Веб-страницы на HTML полностью статичны. Существует не очень много возможностей, чтобы средствами HTML и CSS создать динамический контент на веб-странице. Есть скриптовые языки, такие как JavaScript. JavaScript предоставляет мощный механизм для создания интерактивных и динамических веб-страниц.
Говоря о JavaScript, важно понимать, что это язык сценариев выполняющихся на стороне клиента. Под этим подразумевается, что сценарий выполняется в браузере пользователя, а не на веб-сервере, на котором была создана веб-страница. Хотя это хорошо для многих ситуаций, но часто бывает, что к моменту, когда скрипт достигает браузера, это либо слишком поздно, либо неэффективно, чтобы выполнить необходимое. Примером этого является отображение веб-страницы, содержащей некоторые данные из таблицы базы данных. Поскольку база данных находится либо на том же физическом сервере, что веб-сервер, либо в той же сети, что и веб-сервер, подключенный высокоскоростным оптоволоконным сетевым соединением), имеет смысл для любого сценария извлекать данные из базы данных для выполнения на сервере, а не ждать, пока будет получен запрос из браузера. Для такого рода задач PHP отлично подходит. PHP быстр и эффективен (поскольку сценарий выполняется на сервере, он получает возможность использовать многопроцессорную, крупномасштабную память и другие подобные аппаратные функции уровня предприятия.
В дополнение, к преимуществам языка PHP можно отнести легкость изучения и использования. Тот факт, что PHP работает без проблем с HTML, делает его доступным для широкого сообщества веб-дизайнеров.
Таким образом, PHP имеет много преимуществ, и перечисленные здесь являются лишь некоторыми из причин успеха PHP.
Коротко о классификации языков программирования.
Все языки программирования, за исключением машинного, в конечном итоге транслируют исходный код программы в машинные коды
Существуют два вида трансляторов: компиляторы и интерпретаторы (языки-компиляторы и языки-интерпретаторы).
Компилятор
Компилятор - язык-компилятор, например, BC++ 5.x - переводит исходный код программы, содержащий описания данных и алгоритмы решения задач, в инструкции на машинных кодах (компилирует). Затем, при помощи редактора связей (Link), компонует проект, создавая загрузочный (исполняемый) файл. Загрузочный файл (обычно имеющий расширение - .exe.) - принято называть программой. Полученная программа (если был выбран режим компиляции - static) содержит все необходимое для своей автономной работы на определенной OS (операционной системе) и больше не нуждается в среде разработки, компиляторе, редакторе связей. Её можно перенести и выполнить на другом компьютере, на котором никогда не устанавливался программный комплекс, при помощи которого данное приложение создавалось. Если размер программы превышает 1 - 3 мегабайта - часть подпрограмм выносятся в файлы динамически связанных библиотек (DLL) - имеющие расширение - .dll, которые загружаются в память по мере необходимости и всего лишь один раз. Исполняемые программы, если в них имеются проверки и защиты от изменения части кода, размера или сжатые компрессором - дешифрировать практически невозможно. Встроенная проверка пароля - позволяет оградить от несанкционированного доступа. Для создания программ, например, в Borland C++ -компиляторе для Windows, используется интегрированная среда разработки (IDE - Integrated Davelopment Environment). Она предоставляет собой универсальный и удобный инструмент для разработки, анализа и отладки программ. Имея только этот программный комплекс, можно создавать профессиональные 32-разрядные приложения для всех версий Windows.
Интерпретатор
Интерпретатор - язык-интерпретатор - при обращении к нему программы написанной на этом языке, например PHP. считывает её текст, переводит его в машинные коды, загружает в память и запускает на исполнение. После выхода из программы она так и остается в виде текстового файла с открытым исходным кодом. При каждом следующем обращении к программе, написанной на языке-интерпретаторе - весь процесс повторяется заново. То есть, для выполнения этой программы необходимо присутствие интерпретатора на компьютере. Программы, написанные на языках-интерпретаторах защитить невозможно. Поэтому они имеют ограниченное применение, так как, по неосторожности, можно легко разрушить код программы. А любой имеющий начальные познания в этих языках, может внести нужные ему изменения в алгоритмы вычисления. Работать с данными приложениями могут только подготовленные пользователи.
Основное отличие компиляторов и интерпретаторов.
PHP прост для изучения, уже через несколько часов вы сможете создавать простые PHP-скрипты. И вместе с тем способен удовлетворить запросы профессиональных программистов.
Можно упрощенно считать файлы с расширением - .php (содержащую скрипты php), обычными файлами HTML с набором программ и подпрограмм заключённых в теги - <?php ... ?>
<!DOCTYPE HTML> <html> <head> <title>Пример - первого скрипта на PHP</title> </head> <body> <?php echo "Привет Мир! — скрипт PHP"; ?> </body> </html>
Которые могут обрабатывать данные форм, генерировать динамические страницы, с поддержкой широкого круга баз данных и многое другое.
Создавайте файлы .php (большинство серверов использует это расширение для PHP-файлов), встраивая код PHP в HTML с помощью специальных тегов и, после размещения их в каталогах виртуальных хостов Web-сервера, они будут обрабатываться автоматически.
Предполагается, что сервер имеет поддержку PHP и что все файлы, заканчивающиеся на .php, обрабатываются интерпретатором PHP.
Привет Мир! — скрипт PHP — клиент получит только результат его выполнения.
Документация, PHP Manual на русском языке, доступна на сайте производителя — PHP Group
Руководство PHP состоит из справочника функций, а также содержит справочник языка, комментарии к наиболее важным из отличительных особенностей PHP, и другие дополнительные сведения.
Скачать документацию PHP на русском языке можно на странице Download documentation.
Установите HTTP сервер, например - Apache на вашей системе.