# Что такое PHP и что он умеет делать

## Что такое PHP?

PHP (рекурсивный акроним словосочетания PHP: Hypertext Preprocessor) — распространённый язык программирования общего назначения с открытым исходным кодом, который сконструировали специально для веб-разработки и который встраивают в HTML-разметку.

Простой ответ, но что он означает? Вот пример кода:

Пример #1 Пример программирования на языке PHP

    <!DOCTYPE html>
    <html>
        <head>
            <title>Пример</title>
        </head>
        <body>

            <?php
            echo "Привет, я — PHP-скрипт!";
            ?>

        </body>
    </html>

Вместо рутинного вывода HTML-кода командами языка (как в языках C или Perl), PHP-страницы содержат HTML-разметку со встроенным кодом, который проделывает полезную работу (в примере — выводит текст «Привет, я — PHP-скрипт!»). PHP-код отделяется начальным и конечным тегами `<?php` и `?>` — инструкциями начала и завершения обработки кода, которые разрешают входить в PHP-режим и выходить из него.

Язык PHP отличается от языка JavaScript, который обрабатывается на клиентской стороне, тем, что PHP-скрипты выполняются на сервере, и генерируют HTML-разметку, которая затем посылается клиенту. Клиент получит результаты запуска этого скрипта, но не будет знать, какой базовый код сгенерировал результаты. Веб-сервер настраивается даже так, чтобы обычные HTML-файлы обрабатывались процессором PHP, и тогда клиенты даже не смогут узнать, получают ли они обычный HTML-файл или результат выполнения скрипта.

Язык PHP чрезвычайно прост для начинающих программистов, но предлагает расширенные возможности программистам с опытом. Не бойтесь читать длинный список возможностей PHP. Написать простые PHP-скрипты получится уже через 1-2 часа после начала знакомства с языком.

Хотя PHP-разработка ориентирована на то, чтобы создавать серверные скрипты, язык этим не ограничивается. Продолжайте чтение и не пропустите главу «Что умеет PHP» или начните непосредственно с «Вводного руководства», чтобы перейти к изучению веб-программирования.

# Что умеет PHP

PHP умеет делать что-угодно. Главное назначение PHP — создавать скрипты, которые обрабатываются на сервере; поэтому PHP умеет выполнять всё то, что выполняет любая другая CGI-программа, например, обрабатывать данные форм, генерировать динамические страницы или отсылать и принимать cookies. Но PHP умеет намного больше.

PHP применяют в двух основных областях.

- Создают скрипты, которые обрабатываются на стороне сервера. Это традиционная и главная цель PHP. Чтобы написать и выполнить скрипт, понадобятся три вещи: Синтаксический анализатор PHP (в виде CGI-программы или серверного модуля), веб-сервер и браузер. Эти инструменты запускают на локальной машине, чтобы просто поэкспериментировать с программированием на PHP. Более подробные сведения даёт раздел «Установка и настройка».
- Создают скрипты для запуска в командной строке. PHP-скрипты запускаются без сервера или браузера, потребуется только парсер — синтаксический анализатор PHP. Такой способ работы с PHP идеально подходит для скриптов, которые требуется выполнять регулярно, например, через cron (на платформах *nix или Linux) или через «Планировщик задач» на платформах Windows. Этими скриптами также просто обрабатывают тексты. Дополнительную информацию даёт раздел «Работа с PHP из командной строки».

PHP работает на большей части операционных систем, включая Linux, многие модификации Unix (например, HP-UX, Solaris и OpenBSD), Microsoft Windows, macOS, RISC OS и многие другие. PHP также поддерживает бо́льшую часть современных веб-серверов наподобие Apache, IIS и многих других. Сюда входит любой веб-сервер, который умеет работать с двоичным PHP-файлом FastCGI-интерфейса, например, серверы Lighttpd и nginx. PHP работает либо как модуль, либо как CGI-процессор.

С PHP разработчик получает свободу выбора операционной системы и веб-сервера. Больше того, у программиста появляется выбор между процедурным или объектно-ориентированным программированием (ООП), или сочетанием обеих парадигм.

Программирование на PHP не ограничивается выводом HTML-разметки. PHP также умеет выводить файлы разных типов, например, изображений или PDF-файлов, шифровать данные и отправлять электронную почту. PHP также легко выводит текст наподобие JSON- или XML-строк. PHP умеет автоматически генерировать эти файлы и сохранять их в файловой системе, а не выводить на печать, чтобы сформировать серверный кеш для динамического содержимого.

Одно из значительных преимуществ языка PHP — поддержка широкого круга баз данных. Написать веб-страницу с поддержкой базы данных невероятно просто. Можно использовать модуль конкретной базы данных (например, mysql) или модуль уровня абстракции наподобие PDO, или соединиться с базой данных с поддержкой стандарта открытого подключения к базе данных (ODBC) через модуль ODBC. Для других баз данных, например, CouchDB, можно использовать библиотеку cURL или сокеты.

PHP также поддерживает взаимодействие с другими службами через протоколы LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (на платформах Windows) и многие другие. PHP также умеет открывать необработанные сетевые сокеты и взаимодействовать по другим протоколам. PHP поддерживает стандарт обмена сложными структурами данных WDDX практически между всеми языками веб-программирования. Обращая внимание на взаимодействие между разными языками, следует упомянуть о поддержке объектов языка Java и возможности использовать их как PHP-объекты.

PHP умеет обрабатывать текст, включая Perl-совместимые регулярные выражения (PCRE) и другие модули и инструменты для обработки и доступа к XML-документам. PHP стандартизирует XML-модули на прочной основе библиотеки libxml2, а также расширяет набор инструментов для обработки XML-документов за счёт добавления поддержки модулей SimpleXML, XMLReader и XMLWriter.

Другие интересные модули распределили как в алфавитном порядке, так и по категориям. Существуют также дополнительные PECL-модули, часть которых описывает это руководство, например, модуль » XDebug.

Как видно, этой страницы недостаточно, чтобы перечислить все возможности и преимущества языка PHP. Прочитайте разделы «Установка и настройка» и просмотрите главу «Справочник по функциям», которые дают дополнительные сведения о модулях, которые упоминает эта часть руководства.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open