PHP (рекурсивный акроним словосочетания PHP: Hypertext Preprocessor) — распространённый язык программирования общего назначения с открытым исходным кодом, который сконструировали специально для веб-разработки и который встраивают в HTML-разметку.
PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста»; первоначально PHP/FI (Personal Home Page / Form Interpreter), а позже названный Personal Home Page Tools — «Инструменты для создания персональных веб-страниц») — скриптовый язык общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков, применяющихся для создания динамических веб-сайтов.
Язык и его интерпретатор (Zend Engine) разрабатываются группой энтузиастов в рамках проекта с открытым кодом. Проект распространяется под собственной лицензией, несовместимой с GNU GPL.
Область применения
В области веб-программирования, в частности, серверной части, PHP — один из популярных сценарных языков (наряду с JSP, Perl и языками, используемыми в ASP.NET).
Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств и дополнительных модулей для разработки веб-приложений. Основные из них:
- Автоматическое извлечение POST- и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;
- Взаимодействие с большим количеством различных систем управления базами данных через дополнительные модули (MySQL, MySQLi, SQLite, PostgreSQL, Oracle Database (OCI8), Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird и InterBase, Paradox File Access, MaxDB, интерфейс PDO, Redis);
- Автоматизированная отправка HTTP-заголовков;
- Работа с HTTP-авторизацией;
- Работа с cookies и сессиями;
- Работа с локальными и удалёнными файлами, сокетами;
- Обработка файлов, загружаемых на сервер;
- Работа с XForms.
- Создание и работа с API
- Создание приложение с графическим интерфейсом пользователя при использовании фреймворка Qt Designer
- Создание консольных приложений
По состоянию на 2022 год используется сотнями тысяч разработчиков; согласно рейтингу корпорации TIOBE, базирующемуся на данных поисковых систем, в декабре 2022 года PHP находился на 10 месте по популярности среди языков программирования.
Входит в LAMP — распространённый набор ПО для создания и хостинга веб-сайтов (Linux, Apache, MySQL, PHP), а также LEMP — не менее распространённый набор ПО (Linux, Nginx, MySQL, PHP).
Среди сайтов, использующих PHP — Facebook, Wikipedia, Yahoo!, Baidu.
Также, на PHP написаны такие системы управления сайтами (CMS) и фреймворки (CMF), как Drupal, Joomla, Laravel, Symfony, WordPress, Yii и другие.
Поддержка версий
W3Techs сообщает, что по состоянию на 21 ноября 2024 года (день релиза PHP 8.4) «PHP используется на 75,4 % всех веб-сайтов, чей серверный язык программирования мы знаем». Также сообщается, что из всех сайтов, использующих PHP:
PHP 8.x используют 37,9 % пользователей, из которых актуальные ветви с активной или временной бесплатной поддержкой (8.4, 8.3, 8.2 и 8.1) используют 28,27 % пользователей;
PHP 7.x используют 49,1 % — большинство пользователей:
PHP 5.x используют 12,9 % пользователей, версии, которые не поддерживаются исправлениями безопасности с 2018 года и, как известно, имеют серьёзные уязвимости.
PHP 4.x используют 0,1 % пользователей, версии, которые также не поддерживаются.
Это означает, что по состоянию на 21 ноября 2024 года подавляющее большинство сайтов — 71,7 %, использующих PHP, могут быть уязвимы для взлома; хотя в рамках PHP LTS от Zend ветви 8.0, 7.4, 7.3 и 7.2 (в совокупности 55 %) могут поддерживаться, кроме того некоторые дистрибутивы Linux, такие как Ubuntu и Debian, также предоставляют коммерческую поддержку и платные исправления безопасности, например, для ветви 7.4.
Устаревшие и неподдерживаемые ветви PHP, включая 7.1, 7.0, 5.x и 4.x (в совокупности 16,65 %) настоятельно не рекомендуются к использованию.