Выполнить PHP в HTML

Выполнять код PHP в файле HTML, если сайт уже опубликован в интернете, и без применения кода PHP не обойтись. Проблема в том, что веб-сервер файлы с расширением .htm, .html отправляет без обработки прямо в браузер, так как они не имеет никакого отношения к процессу на сервере.Если веб-сервер определил, что у файла расширение .php, он понимает, что должен выполнять соответствующий код перед отправкой его в браузер.

Выполнить код PHP в опубликованном документе HTML
Выполнить код PHP в документе HTML

— как выполнить код PHP в документе HTML?

Зайти в настройки хостинга и указать серверу какие расширения файлов будут обрабатываться интерпретатором PHP. В нашем случае htm или html.

Если на хостинге нет такой настройки, существует другой способ заставить сервер выполнять код PHP в HTML.

В файл .htaccess нужно добавить строку:

AddType application/x-httpd-php .html

или

AddType application/x-httpd-php .htm

зависит от расширения файла.

Выполнить PHP только для страницы page.html

<Files page.html>
 AddType application/x-httpd-php .html
</Files>

Файл .htaccess может быть скрыт, смотря какой менеджер FTP, возможно придется изменить некоторые настройки, чтобы увидеть его.

Добавить код php в html страницу

Для примера подключим к странице HTML файл меню.

<!doctype html>
<html lang="ru" itemscope="itemscope" itemtype="http://schema.org/CreativeWork">
<head>
<meta charset="utf-8">
<title>Страница HTML с добавленным PHP</title>
</head>
<body>
<?php $page = 'one'; include('inc/menu.php'); ?>
</body>
</html>

Содержание файла menu.php

<?php
// класс для ссылки в меню открытой страницы
$active = 'class="active"'; 
// атрибуты для тега li
$attr = 'role="presentation" itemscope="itemscope" itemtype="http://schema.org/SiteNavigationElement"';
?>
<nav aria-label="Меню">
<ul role="menubar">
 <li <?php echo $attr ?>>         
  <a title="" href="#" itemprop="url" <?php echo ($page == 'one') ? "$active" : ""; ?>>
  <span itemprop="name" aria-label="Страница 1">Страница 1</span>
  </a>
 </li>
 <li <?php echo $attr ?>>
    <a title="" href="#" itemprop="url" <?php echo ($page == 'two') ? "$active" : ""; ?>>
    <span itemprop="name" aria-label="Страница 2">Страница 2</span>
    </a>
 </li>
 <li <?php echo $attr ?>>
  <a title="" href="#" itemprop="url" <?php echo ($page == 'three') ? "$active" : ""; ?>>
  <span itemprop="name" aria-label="Страница 3">Страница 3</span>
  </a>
  </li>
  <li <?php echo $attr ?>>
  <a title="" href="#" itemprop="url" <?php echo ($page == 'four') ? "$active" : ""; ?>>
  <span itemprop="name" aria-label="Страница 4">Страница 4</span>
  </a>
 </li>
</ul>
</nav>

На второй странице подключение файла меню:

<?php $page = 'two'; include('inc/menu.php'); ?>

и т.д.

Если сделали всё правильно, открытой странице в меню для ссылки будет добавляться класс active.

автор PHP420
htmlhook.ru | Скрипты для веб-приложений