Код шаблона простых динамических страниц PHP с include ()
Продолжаем создавать простые веб-сайты. На этот раз непосредственно займемся динамическими страницами PHP в сравнении с возможностями включений на стороне сервера директив SSI, изучая их отличия. В обоих случаях не забываем о базовой основе HTML и CSS, ранее рассматриваемые на этапах: #0, #1 & #2.
Скриптовый язык PHP на уровне сервера здесь используется исключительно с целью формирования динамических веб-страниц из статических, обработки ошибок (11) и создания навигации, включая адаптивную с участием JavaScript.
Описание
Если сравнить приводимые на этом блоге коды шаблонов с SSI и PHP может сложиться впечатление, что они схожи. Это действительно так, поскольку используется общая концепция «include» с включением одних документов в другие, но с принципиально разными технологическими подходами.
Важно понимать, что шаблон с PHP обладает гораздо большим потенциалом. Этот язык разработан еще в середине 90-х специально для создания динамических сайтов любой сложности и активно применяется до сих пор, постоянно развиваясь. Так по данным W3Techs на май 2025 года в Интернете находится 74,3% таких интернет-площадок.
Включения SSI практически не обновлялись с начала 90-х. Лишь в 2012 году с появления Apache версии 2.4 немного изменился синтаксис условных директив.
Документ .htaccess (2) настроен так, что обе технологии можно применять одновременно и каждую в отдельности.
Размещение
Шаблон с динамическими страницами PHP создан в среде локального хостинга Denver с Apache 2.4 & PHP 7.2.19, сейчас размещен на реальном хостинге по адресу - scriptsmy.ru .
Для установки на ПК необходимо СКАЧАТЬ архив template6.zip и распаковать в нужную папку имеющего локального хостинга, предположительно Денвер.
Отличия шаблонов
Заменяются все присутствия директив на стороне сервера (за основу взят архив template4.zip - СКАЧАТЬ) на функционал PHP, при соблюдении правила SEO относительно лишних ссылок.
Ни на одной странице сайта не должны находиться ссылки указывающие на эту же самую страницу, за исключением внутренних гиперссылок (параметр href coдержит имя «якоря» - ="#...", а не URL-адрес) на конкретные части документа с «якорем» (id="...").
Все ниже упомянутые файлы обозначены на изображении двух файловых структур.
1. Переименование расширений
Чтобы динамические странички открывались быстрее в папке .../general-includes/ расширения всех файлов с .shtml (3) меняются на .html (4). Тем самым серверу сообщается, что данные элементы не должны обрабатываться серверными включениями.
2. Сборка страниц
Во всех кодах вебстраниц языковые конструкции типа - ... #include virtual="..." ... (2-1) заменяются на - ... include ("..."); ... (2-2), находятся в каталогах - Корневом с Главной (1) и остальных (10).
3. Название сайта
В код header (5) встраивается скрипт (6), в результате на Главной (1) название ресурса представлено в виде простого изображения, на остальных является также активной ссылкой.
4. Главное меню
Условные серверные директивы в header (5) заменяются скриптом (7).
5. Создание «хлебных крошек»
Является дополнением к Главному меню с целью лучшей ориентации на сайте.
Создано исключительно с помощью базовых средств верстки.
6. Формирование правой колонки
Применяется скрипт (8) формирующий в динамике правую колонку в зависимости от предназначения текущей страницы.
Нужно понимать, при использовании больших объемов данных такой вариант может замедлять работу веб-приложения. Тогда лучше подключать соответствующие статические элементы данных (9).
7. Редактирование .htaccess (2)
В строке #13 адрес template6.itworldmy.ru заменяется на актуальный адрес.
Что лучше
Каждый подход имеет свои достоинства и недостатки.
Язык PHP:
- обладает обширными возможностями и инструментариями, включая популярные фреймворки и библиотеки;
- относительно несложен в освоении;
- легко и органично встраивается в HTML;
- постоянно развивается;
- доступен на всех хостингах;
- активно поддерживается сообществом;
- хорошо представлен в сети, учебной и справочной литературе.
Основной недостаток таких создаваемых динамических страниц - грузятся медленнее чем простые HTML, что в значительной мере компенсируется вышеперечисленными достоинствами, популярность тому подтверждение.
Система SSI не обладает таким количеством достоинств, ее функционал ограничен, но прост в эксплуатации и востребован. Суть идеи - расширение возможностей HTML с целью упрощения сопровождения статических страниц путем превращения их в динамические без потери скорости.
⚬ ⚬ ⚬
Использовать методику формирования незатейливых динамических страниц PHP с конструкцией include() допустимо, но данный язык прежде всего предназначен для решения более сложных задач.
Если необходима несложная, скоростная, но динамическая и многофункциональная интернет-площадка, то лучше применять технологию SSI совместно с другими. Таким образом предлагается реализовать оба подхода, обозначенных выше, одновременно.
1. Использовать серверные включения для формирования динамических вебстраниц из статических файлов, создания навигации, отображения размера документов, времени их редактирования, … .
2. Придать страницам проекта интерактивность, больше адаптивности и расширить функционал благодаря вкраплению в исходный код логически завершенные сценарии скриптовых языков на серверном & браузерном уровнях. Соответственно в качестве примеров: анализируются статусы 304 & 200, придается динамика бургер меню, ... .
