Простой учебник Это краткое и простое руководство показывает только основы PHP. Текст рассказывает, только как создавать динамические веб-страницы на PHP, хотя PHP умеет больше. Раздел «Что умеет PHP» даёт дополнительную информацию. Веб-страницы с поддержкой PHP обрабатываются аналогично HTML-страницам: PHP-страницы создают и редактируют аналогично страницам на языке HTML-разметки.
Первая страница на PHP Вначале потребуется установить PHP. Инструкция по установке доступна на странице загрузки. Теперь создадим файл с названием hello.php и напишем внутри следующий код: Первый скрипт на PHP: <filename>hello.php</filename> В терминале перейдём в каталог, в котором содержится файл, и запустим сервер разработки следующей командой: Для доступа к файлу в браузере указывают URL-адрес, который состоит из адреса веб-сервера и ссылки на файл: /hello.php. Из команды, которую выполнили на предыдущем шаге, возьмём адрес веб-сервера и построим полный URL-адрес: http://localhost:8000/hello.php. При правильной конфигурации PHP обработает файл, а браузер покажет вывод: "Привет, мир!". PHP-интерпретатор умеет генерировать веб-страницы из исходного кода, в котором PHP-код встроили в HTML-разметку. Поэтому PHP-инструкции записывают непосредственно внутри разметки будущего HTML-документа, как показывает следующий пример: Тестируем PHP Привет, мир!

'; ?> ]]>
Код сгенерирует следующий HTML-вывод: Тестируем PHP

Привет, мир!

]]>
Эта программа чрезвычайно проста, и чтобы создать настолько простую страницу, даже не обязательно запускать и писать код на PHP. Единственное, что делает программа, — выводит строку Привет, мир! PHP-инструкцией echo. Заметьте, что файл не требуется делать исполняемым или ещё каким-то образом отличаться от других файлов. Сервер знает, что этот файл требуется интерпретировать средствами PHP, поскольку расширение файла — ".php", которое сервер настроен передавать PHP. О PHP-файле думают как об обычном HTML-файле, который содержит набор тегов, которые умеют делать много интересного. Цель примера — показать формат PHP-тегов. Тег <?php обозначает начало PHP-кода. Затем идёт PHP-инструкция и тег ?>, который заставляет парсер выйти из режима интерпретации PHP-кода. Теги указывают в произвольном месте файла, когда требуется переключить режимы интерпретации PHP-кода и анализа HTML-разметки. Подробнее о разборе исходного кода рассказывает раздел руководства «Основы синтаксиса». Замечание о переводах строк У переводов строк небольшое значение в HTML-разметке, однако, HTML-разметка с переносами выглядит аккуратной. PHP автоматически удаляет переводы строки, которые идут сразу после закрывающего тега ?>. Это может быть чрезвычайно полезно при добавлении ряда блоков PHP-кода или при подключении PHP-файлов с PHP-кодом, который ничего не выводит. Но иногда это сбивает с толку. Можно поставить пробел после закрывающего тега ?>, чтобы принудительно вывести пробел и перевод строки, или можно явно добавить перевод строки в последний вызов языковых конструкций echo или print из блока PHP-кода. Кратко о текстовых редакторах PHP-файлы создают и редактируют в текстовых редакторах и интегрированных средах разработки (IDE). Список отдельных редакторов содержит статья Список PHP-редакторов. Попросите администратора страницы добавить редактор, который рекомендуете, в список. Окажется полезным редактор с подсветкой синтаксиса. Кратко о текстовых процессорах В текстовых процессорах наподобие StarOffice Writer, Microsoft Word и Abiword неудобно редактировать PHP-файлы. Убедитесь, что сохраняете файл в формате plain text, если изменяете тестовый скрипт в таком редакторе, иначе не получится прочитать и выполнить PHP-скрипт. Теперь, когда узнали основы языка, пора создать самый знаменитый PHP-скрипт! Вызовите функцию phpinfo и увидите много полезной информации о системе и настройке, например, доступные предопределённые переменные, загруженные PHP-модули и параметры настройки. Уделите время изучению этой важной информации. Получение информации о системе средствами PHP
Примеры кода Теперь напишем полезный код и узнаем, в каком браузере посетитель просматривает страницу. Для этого проверим строку пользовательского агента, которую браузер отправляет как часть HTTP-запроса. Информация об агенте содержится в массиве, который хранится в переменной. В PHP каждая переменная начинается со знака доллара, а значение отдельного элемента массива в переменной получают по ключу. Извлечём строку пользовательского агента из элемента $_SERVER['HTTP_USER_AGENT']. $_SERVER — суперглобальная зарезервированная переменная, которую PHP заполняет информацией о запросе, среде выполнения и серверном окружении. Дополнительную информацию о таких переменных содержит раздел «Суперглобальные переменные». Для вывода значения элемента массива, который хранится в переменной, напишем следующий код: Вывод значения элемента массива Пример вывода программы: В PHP-переменных хранят числа, строки, массивы и значения других типов. Тип значения, элемент которого выводил код предыдущего примера, называется массивом. Массивы полезны для хранения значений произвольных типов. Переменная $_SERVER — только один пример переменной, к которой PHP автоматически открывает доступ. Список таких переменных приводит раздел «Зарезервированные переменные» или вывод функции phpinfo, которую приводил как пример предыдущий раздел. В PHP-тег разрешается помещать больше одной инструкции и создавать небольшие блоки кода, которые делают больше, чем простой вызов инструкции echo. Например, если требуется проверить, что используется браузер Firefox, делают так: Пример использования <link linkend="language.control-structures">управляющих структур</link> и <link linkend="language.functions">функций</link> Пример вывода программы: Здесь вводится ряд новых понятий. Во-первых, в коде появилась инструкция if. Если вы знакомы с основами синтаксиса языка C, код выглядит для вас логичным. Иначе, вероятно, лучше взять книгу об основах языка PHP и прочитать одну-две начальных главы или почитать раздел «Справочник языка» этого руководства. Во-вторых, в коде появился вызов функции str_contains. Функция str_contains — встроенная в PHP функция, которая определяет, содержит ли строка другую строку. В примере функция ищет строку «Firefox» (т. н. «иголку», или needle) в элементе $_SERVER['HTTP_USER_AGENT'] (в т. н. «стоге сена», или haystack). Если функция нашла «иголку» в «стоге сена», она возвращает логическое значение &true;. Иначе функция возвращает логическое значение &false;. Если функция вернёт &true;, то условие в выражении конструкции if окажется истинным (&true;), а PHP выполнит код в фигурных скобках {}. Иначе код не выполняется. Попробуйте создать аналогичные примеры с использованием инструкций if и else, а также других функций наподобие strtoupper и strlen. Каждая страница руководства также содержит примеры. Почитайте страницу руководства о том, как читать определения функций, и раздел о PHP-функциях, если не знаете, как использовать функции. Пойдем дальше и покажем, как переходить в режим PHP и выходить из режима интерпретации даже в середине блока PHP-кода: Смешение режимов HTML и PHP

Функция str_contains() вернула значение true

Вы просматриваете страницу в браузере Firefox.

Функция str_contains() вернула значение false

Ваш браузер не похож на Firefox.

Пример вывода данной программы: Функция str_contains() вернула значение true

Вы просматриваете страницу в браузере Firefox.

]]>
Вместо вывода текста инструкцией echo, мы вышли из режима интерпретации PHP-кода и написали HTML-разметку. Логическая последовательность выполнения PHP-кода при этом сохраняется: PHP отправит пользователю только один блок HTML-разметки на основе значения, которое вернёт функция str_contains по результатам поиска подстроки Firefox.
Работа с формами Список преимуществ PHP дополняет способ обработки HTML-форм. Основа заключается в том, что PHP-скрипт автоматически получает доступ к каждому элементу формы. Подробнее о работе с формами в PHP рассказывает раздел «Переменные из внешних источников». Вот пример HTML-формы: Простейшая HTML-форма ]]> В этой форме нет ничего особенного. Это обычная HTML-форма без каких-либо специальных тегов. Когда пользователь заполнит форму и нажмёт кнопку отправки, PHP вызовет страницу action.php. В файле пишут что-то вроде этого: Выводим данные формы . Тебе лет. ]]> Пример вывода программы: Кроме частей, в которых вызывается функция htmlspecialchars и приводится тип (int), понятно, что делает код. Функция htmlspecialchars гарантирует, что специальные HTML-символы правильно закодировались, поэтому люди не смогут внедрить HTML-теги или Javascript-код на страницу. Поскольку известно, что поле age — число, можно просто преобразовать значение в целое число (int), что автоматически избавит нас от случайных символов. PHP также может сделать это автоматически через модуль filter. PHP автоматически устанавливает переменные в элементах $_POST['name'] и $_POST['age']. Раньше мы использовали суперглобальную переменную $_SERVER, а здесь мы точно так же используем суперглобальную переменную $_POST, которая содержит POST-данные. Обратите внимание, что для атрибута method в форме установили значение POST. Если бы указали метод GET, информацию формы содержала бы суперглобальная переменная $_GET. В коде также обращаются к суперглобальной переменной $_REQUEST, если источник данных запроса не имеет значения. Эта переменная содержит объединенную информацию о GET-, POST- и COOKIE-данных.
Что дальше? Новые знания помогут понять бо́льшую часть руководства и примеры скриптов. Сайт с материалами PHP-конференций содержит слайд-презентации, которые подробнее рассказывают о возможностях PHP: &url.php.talks;