Программирование на языке PHP
Введение
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-файл
PHP - файл - это текстовый файл (предпочтительно - в кодировке utf-8)
PHP-файлы могут содержать текст, HTML, CSS, JavaScript и PHP-код
PHP-код, найденный в исходном файле, выполняется на сервере
Файлы PHP имеют расширение «.php»
Что может делать PHP
PHP может генерировать динамическое содержимое страницы
PHP может создавать, открывать, читать, записывать, удалять и закрывать
файлы на сервере
PHP может собирать данные формы
PHP может отправлять и получать файлы cookie
PHP может добавлять, удалять и изменять данные в вашей базе данных
PHP может использоваться для управления доступом пользователей
PHP может шифровать данные
С PHP вы не ограничены выводом HTML. Вы можете выводить изображения,
PDF-файлы и даже флеш-ролики.
Вы также можете выводить любой текст, такой как XHTML и XML.
Почему часто разработчики выбирают именно PHP
PHP работает на различных платформах (Windows, Linux, Unix, Mac OS X и т.
Д.).
PHP совместим практически со всеми используемыми сегодня серверами (Apache,
IIS и т. Д.)
PHP поддерживает широкий спектр баз данных
PHP является бесплатным.
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
Установка VS Code - Windows
Video
Установка WAMP - Windows
Video
Программа на PHP
Текст программы на языке 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 и по результату проверки вставляет разные блоки кода.
<?php if ($var1 == true): ?>
Код, который выполнится в том случае, если значение переменной $var1 - истина.
<?php else: ?>
Код, который выполнится в противном случае
<?php endif; ?>
<?php for ($i=0; $i<5; $i++): ?>
<h2>HTML text to repeat</h2>
<?php echo $i; ?>
<?php endfor; ?>
Запуск, тестирование PHP скрипта
С командной строки
(cmd - Windows, Terminal - linux). Далее - для Windows.
cкачать PHP по ссылке https://www.php.net/downloads.php
разархивировать (например - в папку c:\php)
добавить папку c:\php в пути поиска Windows
создать папку для PHP сервера - например: c:\PHPServer1
запустить Windows command prompt - cmd
перейти в папку сервера: cd c:\PHPServer1
запустить WEB сервер, используя текущую папку как document root: php -S localhost:4000
создать в папке c:\PHPServer1 текстовый файл index.php с текстом: <?php echo "My first PHP project"; ?>
открыть страничку сервера в браузере (http://localhost:4000/)
Video
WAMP server bundle Скачать, установить, запустить WAMP.
Создать виртуальный хост
Создать в корневом каталоге этого хоста index.php
Открыть страничку этого сервера в браузере.
VS code
Установить Microsoft VS Code
Установить PHP server extension
Создать index.php и запустить с помощью PHP server
Video
Основные понятия. Cинтаксис языка PHP
Программа на языке PHP состоит из набора допустимых предложений языка(statements), разделённых
символом: ";".
Statement, Instruction
Expression, Evaluation
Operator
Variable, Constant, Literal
Token
Использование текстовых комментариев в языке PHP
Комментарии позволяют автору программы включить в код дополнительную
информацию, памятки, пояснения. Коммертарии никак не используются
интерпретатором языка, то есть не влияют на ход выполнения программы.
// комментарий - одна строка /* Комментарии : несколько строк */ echo "My
script" ; // комментарий - в конце оператора языка
<?php /*echo "Это тест"; /* Этот комментарий вызовет
проблему */ */ ?>
Массивы
Массив (Array) можно представить как целый набор переменных разного типа,
объединённых под одним идентификатором. PHP поддерживает массивы разного типа.
Массивы с цифровыми индексам
Ассоциативные массивы
Многомерные массивы
Язык PHP предоставляет большое количество встроенных стандартных функций для
работы с массивами.
Подробнее
Вывод (печать) из программы на PHP
Подробнее
Условные операторы
Условные операторы. Ветвления. if, else, elseif, switch.
Подробнее
Циклы (loops)
Операторы PHP, которые позволяют повторно выполнять определённые блоки
программы, анализируя во время выполнения условие окончания цикла.
Циклы while, do... while
Циклы for, foreach
Операторы break, continue
Подробнее
Функции в языке PHP (function)
Функции в языке PHP аналогичны функциям в других языках программирования.
Функция представляет собой поименованный блок, участок кода. По этому имени
фунция вызывается для выполнения.
Таким образом, один раз определив функцию и присвоив ей имя, использовать её
можно многократно.
Функция может использовать один или несколько аргументов-параметров. Это
специальные переменные, которые формально описываются в момент создания
функции, а реальные значения получают во время вызова, выполнения функции.
Функция может возвращать в вызываемую программу некоторое значение через своё
имя.
Работа с функциями состоит из 2-х этапов:
создать, определить функцию (define function)
вызвать функцию (call function)
Подробнее
Строковые переменные
Декларация текстовых (строковых переменных). Разделители строк. Интерпретация
строк. Функции PHP для работы со строковыми переменными.
Подробнее
Область видимости переменных
Пространство имён (namespace)
Область видимости переменных. Пространство имён.
Подробнее
Работа с датами
Функции PHP для работы с датами, временем.
Подробнее
Запросы HTTP
Запросы HTTP, параметры URL, формы HTML. Методы: get, post. $_POST, $_GET
Подробнее
Регулярные выражения (Regular expressions)
Подробнее
Фильтры
Фильтры позволяют выполнить проверку данных и обезопасить их от возможных
вредоносных кодов. Это особенно важно, если содержимое получено из неизвестных
или ненадежных источников, таких, как пользовательский ввод. Например, такие
данные можно получить из HTML-форм.
Существует два основных типа фильтрации: проверка и очистка.
Проверка используется для определения соответствия данных определённым
критериям. Например, применение FILTER_VALIDATE_EMAIL позволяет проверить,
являются ли введённые данные адресом email,, сами данные при этом останутся
нетронутыми.
Подробнее
Работа с формами в PHP
Большую роль в WEB - программировании играет передача данных через сайт на
сервер и обработка этих данных.
Эту роль выполняют формы (forms). Форма собирает введённые посетителем сайта
данные (они ввдятся при помощи специальных полей ввода) и передаёт их
программе-обработчику на сервер.
Работу с формами можно разделить на два этапа:
создать HTML-форму
написать PHP-программу для обработки данных формы.
Например:
<form action="prog.php" method="post"> Введите имя: <input
type="text" name="nam"> <input type="submit"> </form>
В этом примере в окне браузера нарисуется форма с одним полем ввода и кнопкой
"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 можно работать с файлами и папками на диске сервера.
Подробнее
Куки (Cookies)
HTTP Cookies - это механизм хранения данных браузером компьютера клиента.
PHP содержит ряд функций для работы с cookies.
Подробнее
Контроль сеанса связи (Sessions)
Sessions в PHP предназначены для созранения на сервере информации о сеансе
связи с браузером клиента. Похоже на cookie, но информация зранится не на
компьютере клиента, а на сервере.
Подробнее
Работа с электронной почтой (E-Mail)
Самый простой способ посылать почту из программы на PHP - функцмя mail().
Пример:
<?php $to = Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript. '; $subject = 'the subject'; $message =
'hello'; $headers = 'From: Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript. ' . "\r\n" . 'Reply-To:
Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript. ' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($to,
$subject, $message, $headers); ?>
Но использование этой функции не всегда удобно и надёжно. Часто удобнее
использовать другие билиотеки или классы для работы с электронной почтой из
PHP.
Подробнее
OOП на PHP
Программа на языке PHP может быть написана с использованием разных подходов к
программированию.
Первый подход - процедурное (procedural) программирование. В этом случае
программа использует различные структыры данных (переменные, массивы,...) и
функции для их обработки.
Второй подход - объектно-ориентированное (Object Oriented) программирование. В
этом случае внимание разработчика в первую очередь сосредоточено на
функциональных блоках программы- объектах и их взаимодействии.
При использовании ООП сначала создаётся класс (шаблон для объекта). Класс
отражает необходимый функционал для будущих объектов:
описывает данные, которые объект сможет использовать - свойства
(properties),
возможные способы манипулирования будущим объектом - методы (methods).
Далее по этому шаблону (class) в программе создаются объекты. Каждый из этих
объектов может использовать те свойства и методы, которые класс описал.
Например, если программа должна использовать электронную почту, то логично
создать класс, имеющий свойства: ИМЯ_ПОЛУЧАТЕЛЯ, ИМЯ_ОТПРАВИТЕЛЯ,
ТЕКСТ_СООБЩЕНИЯ и методы ПОСЛАТЬ_ПОЧТУ.
Объектно-ориентированное программирование во многих случаях упрощает создание
программ со сложными логическими структурами. Такой подход позволяет больше
абстагироваться от техники программирования и сосредоточиться на логика
программы.
Подробнее
Работа с базами данных - MySQL
База данных представляет собой структурированную систему храниения и
управления данными. Каждая база данных поддерживает один или несколько
интерфейсов (API) для разных языков программирования, в том числе - для PHP.
Эти библиотеки API предназначены для создания баз данных, доступа к ним,
управления, поиска и репликации данных.
Для хранения данных могут быть использованы и другие способы. Например: файлы
в файловой системе, таблицы в памяти. Но база данных предоставляет
несравнимо больше возможностей для надёжной, быстрой и эффективной выборки и
обработки больших массивов данных.
В настоящее время наиболее часто для хранения и управления больщими массивами
информации используются реляционные системы управления базами данных (RDBMS
Relational Database Management System). Все данные хранятся в разных таблицах
и отношения между ними устанавливаются с использованием различного типа
ключей.
MySQL - популярная система управления базами данных. Практически все языки
программирования поддерживают API для работы с MySQL.
Самое популярное сочетание для WEB разработок - это язык программирования PHP
и MySQL в качестве системы управления базами данных.
MySQL использует стандартные запросы языка SQL (Structured Query
Language queries) для манипуляций с данными.
Подробнее
PHP и AJAX
Основы.
Client Side HTML file
Server Side PHP file
Подробнее