#1. PHP отдаёт HTML: страница с текущей датой - практический урок

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

Немного теории

Полезно перед началом вспомнить, как PHP взаимодействует с сервером и клиентом: если браузер запросил обычный файл, веб-сервер просто отдаёт его как есть, а если запрос пришёл на .php-скрипт — сервер сначала передаёт его PHP на выполнение, и клиенту уходит только результат.

Про то, как связаны PHP и HTML, читайте в п. 1.2 нашего учебника.

Как запустить примеры

Достаточно одного из двух вариантов:

  • Скачать наш учебный репозиторий и запустить docker-окружение — командой make docker.start.all из папки lessons-v1 (если вы не работали с make — посмотрите наш курс по Makefile). Урок откроется по адресу http://localhost:19791/lessons/lesson01-html-date/
  • Либо разложить файлы урока в собственный виртуальный хост, если вы уже настраивали PHP с веб-сервером.

Шаг 1. Статическая страница

Положим в одну папку два файла. Первый — hello.html, обычная страница:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Привет</title>
</head>
<body>
  <h1>Привет!</h1>
  <p>Это обычная статическая страница.</p>
</body>
</html>

Откройте её в браузере, для нашего docker-окружения адрес такой: http://localhost:19791/lessons/lesson01-html-date/hello.html

Сервер отдал файл ровно в том виде, в каком мы его записали. Содержимое такого файла всегда одинаково — поэтому такие страницы называют статическими.

Шаг 2. Страница, которую собирает PHP

Второй файл — index.php, в той же папке. Разметка та же, но дату и время выводит PHP:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Привет из PHP</title>
</head>
<body>
  <h1>Привет!</h1>
  <p>Сейчас на сервере:</p>
  <p><?php echo date('d.m.Y H:i:s'); ?></p>
</body>
</html>

Строка 'd.m.Y H:i:s' — это формат: какие части даты и времени вывести и как именно, подробно описано в документации функции date().

Откройте адрес http://localhost:19791/lessons/lesson01-html-date/ и обновите страницу несколько раз — время будет меняться. Значит, при каждом запросе сервер заново выполняет скрипт и формирует новый ответ. Такие страницы называют динамическими: их содержимое собирается в момент запроса.

Главное наблюдение: что видит браузер

На динамической странице нажмите Ctrl+U («исходный код страницы»). Вы увидите обычный HTML — и никакого PHP-кода. Например, вместо нашей PHP-вставки в коде страницы будет уже готовая строка вида:

<p>26.10.2026 19:12:05</p>

То есть браузер вообще не знает о существовании PHP: он получает уже готовый HTML. Запомните это свойство серверного языка — оно будет важно во всех следующих уроках.

Итоги

  • статическая страница (файл .html) — сервер отдаёт файл как есть;
  • динамическая (скрипт .php) — сервер сначала выполняет код, а клиенту уходит то, что напечатал скрипт (обычно HTML);
  • PHP-код в браузер не попадает: в «исходном коде страницы» виден только результат работы скрипта.

В следующих уроках научимся передавать серверу данные — через GET-параметры в адресе страницы.