PHP - язык программирования, разработанный специально для Web. Это так называемый интерпретируемый (скриптовый язык). Интерпретатор языка PHP, который выполняется на сервере, последовательно читает и выполняет инструкции PHP, найденные в файле.
Язык PHP был задуман в 1994 году и первоначально был работой одного человека - Расмуса Лердорфа. Он был принят другими разработчиками и постоянно совершенствуется, предоставляя нам многофункциональный язык программирования, который мы видим сегодня.
Количество установок PHP постоянно растёт. Это наглядно демонстрируется на сайте http://php.net/usage.php
PHP - проект с открытым исходным кодом (open source), это означает, что у вас есть доступ к исходному коду и легально можно использовать, изменять и распространять его бесплатно.
Первоначально акроним PHP означал: Personal Home Page, но был изменен позднее, в соответствии с GNU - соглашением об именах (GNU = Gnu's Not Unix) и теперь означает: Hypertext Preprocessor.
PHP-код вписывается в HTML-страничку наряду с другими инструкциями (HTML, CSS,
JavaScript, ... ), этот код выполняется сервером каждый раз, когда страница
запрашивается браузером пользователя.
Когда браузер пользователя (например - Chrome, IE, Opera, ...) запрашивает по определённому адресу (URL = Universe Resource Locator) нужную WEB-страничку, этот запрос (HTTP request) получает WEB-сервер, на котором эта страничка физически находится (например - WEB-сервер Apache, IIS, ... ).
Сервер (WEB server) берёт эту страничку со своего жёсткого диска и, в соответствиями с найденными в ней директивами, формирует ответ (HTTP response ) и посылает этот ответ запросившему клиенту (WEB client).
WEB страничка в своём тексте может содержать различную информацию (HTML код, программы на языке PHP и тд). До отправки странички клиенту (браузеру) WEB сервер выполняет найденный в ней PHP код (оставляя без изменения весь текст, который находится вне PHP - тегов (HTML, JavaScript, ), модифицирует страничку по результатам работы этого кода и уже модифицированную версию отправляет браузеру.
Таким образом, PHP-код выполняется на веб-сервере, сервер генерирует HTML или другой вывод, дополняет им исходный код и уже дополненную результатами PHP страничку посылает браузеру.
Для начала работы над проектами на языке PHP необходим определённый набор программного обеспечения. Нужен WEB сервер (например: для компьютеров под управление Windows - IIS или Apache, для Linux - компьютеров - сервер Apache). На сервере необходим язык PHP. Для большинства проектов нуже сервер управления базами данных (например: MySQL). Для написания и отладки PHP-программ часто используется программы - IDE (Integrated Developer Environment ;- интегрированная среда разработчика)
Для начинающих разработчиков, не имеющих опыта в адимистрировании WEB серверов, часто удобнее использовать готовые решения в виде сборки (bundle), которые устанавливаются на локальный компьютер с минимальными требованиями к ресурсам самого компьютера и к административным навыкам пользователя.
Популярные сборки, например: AMPPS - server, WAMP server .
Эти сборки есть для всех версий ОС на локальном компьютере (Windows, Mac, Linux, 32-bit, 64-bit, ...). Они включают в себя не только собственно язык PHP, но и WEB server, другие необходимые разработчику сервисы, как например сервер баз данных MySQL.
Для отладки, разработки программ можно использовать, например, Microsoft Visual Studio Code, NotePad++ с различными плагинами, расширениями для программирования на HTML, CSS, JavaScript, PHP.
Можно скачать на свой компьютер только интерпретатор языка PHP Current Stable PHP version, тогда простой сервер для отладки, тестирования PHP - скриптов можно запустить командой:
php -S localhost:4000
Текст программы на языке PHP находится в текстовом файле с расширением PHP. Программа может занимать весь файл, может чередоваться в файле с HTML - тегами, может быть импортирована из другого файлаю
WEB сервер, открыв этот файл, запускает для его анализа интерпретатор языка PHP. Интерпретатор языка игнорирует всё, кроме директив языка PHP. После этого он формирует новую WEB страничку. Все блоки PHP кода заменяются на результат работы PHP, а остальные части исходной странички остаются неизменными.
Эта, динамически сформированная WEB страничка, посылается клиенту (интернет-браузеру, который к серверу обращался).
В исходном текстовом файле программа PHP выделяется тегами PHP -
текст, HTML, CSS, JavaScript
<?php
программа1 на языке PHP
?>
текст, HTML, CSS, JavaScript
<?php программа2 на языке PHP ?> текст, HTML, CSS, JavaScript
Может вставляться внутрь HTML тега
<h1 style="color:#0000<?php echo 'FF' ?>"> Текст синего цвета </h1>
Может вставляться в код страницы в зависимости от результата работы операторов if, for. Пример ниже проверяет значение переменной $var1 и по результату проверки вставляет разные блоки кода.
(cmd - Windows, Terminal - linux). Далее - для Windows.
Скачать, установить, запустить WAMP.
Создать виртуальный хост
Создать в корневом каталоге этого хоста index.php
Открыть страничку этого сервера в браузере.
Установить Microsoft VS Code
Установить PHP server extension
Создать index.php и запустить с помощью PHP server
Программа на языке PHP состоит из набора допустимых предложений языка(statements), разделённых символом: ";".
Комментарии позволяют автору программы включить в код дополнительную информацию, памятки, пояснения. Коммертарии никак не используются интерпретатором языка, то есть не влияют на ход выполнения программы.
Массив (Array) можно представить как целый набор переменных разного типа, объединённых под одним идентификатором. PHP поддерживает массивы разного типа.
Язык PHP предоставляет большое количество встроенных стандартных функций для работы с массивами.
Условные операторы. Ветвления. if, else, elseif, switch.
Операторы PHP, которые позволяют повторно выполнять определённые блоки программы, анализируя во время выполнения условие окончания цикла.
Функции в языке PHP аналогичны функциям в других языках программирования. Функция представляет собой поименованный блок, участок кода. По этому имени фунция вызывается для выполнения.
Таким образом, один раз определив функцию и присвоив ей имя, использовать её можно многократно.
Функция может использовать один или несколько аргументов-параметров. Это специальные переменные, которые формально описываются в момент создания функции, а реальные значения получают во время вызова, выполнения функции.
Функция может возвращать в вызываемую программу некоторое значение через своё имя.
Работа с функциями состоит из 2-х этапов:
Декларация текстовых (строковых переменных). Разделители строк. Интерпретация строк. Функции PHP для работы со строковыми переменными.
Пространство имён (namespace)
Область видимости переменных. Пространство имён.
Функции PHP для работы с датами, временем.
Запросы HTTP, параметры URL, формы HTML. Методы: get, post. $_POST, $_GET
Фильтры позволяют выполнить проверку данных и обезопасить их от возможных вредоносных кодов. Это особенно важно, если содержимое получено из неизвестных или ненадежных источников, таких, как пользовательский ввод. Например, такие данные можно получить из HTML-форм.
Существует два основных типа фильтрации: проверка и очистка.
Проверка используется для определения соответствия данных определённым критериям. Например, применение FILTER_VALIDATE_EMAIL позволяет проверить, являются ли введённые данные адресом email,, сами данные при этом останутся нетронутыми.
Большую роль в WEB - программировании играет передача данных через сайт на сервер и обработка этих данных.
Эту роль выполняют формы (forms). Форма собирает введённые посетителем сайта данные (они ввдятся при помощи специальных полей ввода) и передаёт их программе-обработчику на сервер.
Работу с формами можно разделить на два этапа:
Например:
В этом примере в окне браузера нарисуется форма с одним полем ввода и кнопкой "SUBMIT"
При нажатии на эту кнопку, форма возьмёт данные, введённые в поле ввода (input type="text"), создаст в глобальной PHP-переменной $_POST (так как атрибут method тега form имеет значение "post") элемент массива с индексом nam (так как атрибут name тега input имеет значение "nam") и присвоит этому элементу введённое в поле значение. После этого форма вызовет PHP-программу из файла с именем prog.php (так как action="prog.php").
Вызванной программе доступны все глобальные переменные, в том числе - массив $_POST и его элемент $_POST['nam'] , в котором и находится переданное формой значение.
PHP позволяет хранить части программного кода в различныхфйлах. Можно включать в программу на PHP различные фрагменты кода из других файлов.
Из программы на PHP можно работать с файлами и папками на диске сервера.
HTTP Cookies - это механизм хранения данных браузером компьютера клиента.
PHP содержит ряд функций для работы с cookies.
Sessions в PHP предназначены для созранения на сервере информации о сеансе связи с браузером клиента. Похоже на cookie, но информация зранится не на компьютере клиента, а на сервере.
Самый простой способ посылать почту из программы на PHP - функцмя mail().
Пример:
Но использование этой функции не всегда удобно и надёжно. Часто удобнее использовать другие билиотеки или классы для работы с электронной почтой из PHP.
Программа на языке PHP может быть написана с использованием разных подходов к программированию.
Первый подход - процедурное (procedural) программирование. В этом случае программа использует различные структыры данных (переменные, массивы, ...) и функции для их обработки.
Второй подход - объектно-ориентированное (Object Oriented) программирование. В
этом случае внимание разработчика в первую очередь сосредоточено на
функциональных блоках программы- объектах и их взаимодействии.
При использовании ООП сначала создаётся класс (шаблон для объекта). Класс отражает необходимый функционал для будущих объектов:
описывает данные, которые объект сможет использовать - свойства (properties),
возможные способы манипулирования будущим объектом - методы (methods).
Далее по этому шаблону (class) в программе создаются объекты. Каждый из этих объектов может использовать те свойства и методы, которые класс описал.
Например, если программа должна использовать электронную почту, то логично создать класс, имеющий свойства: ИМЯ_ПОЛУЧАТЕЛЯ, ИМЯ_ОТПРАВИТЕЛЯ, ТЕКСТ_СООБЩЕНИЯ и методы ПОСЛАТЬ_ПОЧТУ.
Объектно-ориентированное программирование во многих случаях упрощает создание программ со сложными логическими структурами. Такой подход позволяет больше абстагироваться от техники программирования и сосредоточиться на логика программы.
База данных представляет собой структурированную систему храниения и управления данными. Каждая база данных поддерживает один или несколько интерфейсов (API) для разных языков программирования, в том числе - для PHP. Эти библиотеки API предназначены для создания баз данных, доступа к ним, управления, поиска и репликации данных.
Для хранения данных могут быть использованы и другие способы. Например: файлы в файловой системе, таблицы в памяти. Но база данных предоставляет несравнимо больше возможностей для надёжной, быстрой и эффективной выборки и обработки больших массивов данных.
В настоящее время наиболее часто для хранения и управления больщими массивами информации используются реляционные системы управления базами данных (RDBMS Relational Database Management System). Все данные хранятся в разных таблицах и отношения между ними устанавливаются с использованием различного типа ключей.
MySQL - популярная система управления базами данных. Практически все языки программирования поддерживают API для работы с MySQL.
Самое популярное сочетание для WEB разработок - это язык программирования PHP и MySQL в качестве системы управления базами данных.
MySQL использует стандартные запросы языка SQL (Structured Query Language queries) для манипуляций с данными.
Основы.
Client Side HTML file
Server Side PHP file