Способы вставки PHP кода в HTML

Достаточно часто у нас возникает необходимость включить PHP код внутрь HTML страницы. Сделать это достаточно просто, когда понимаешь основные принципы работы парсера кода и знаешь основные методы его вставки с различиями между ними. Об этом и пойдет речь далее.

Принцип обработки файла содержащего PHP

После того, как парсер заходит на страницу, он начинает читать код построчно до тех пор, пока не наткнется на специальные теги, обозначающие начало и конец кода PHP, до этого момента он просто выводит содержимое документа на экран монитора.

После обнаружения скрипта, происходит его исполнение, и когда заканчивается обработка всего, что написано до тега, завершающего вставку PHP, снова продолжается построчный вывод информации на экран пользователя.

Для лучшего понимания можете запустить у себя файл php следующего содержания:

<html>
   <head>
      <title>Пояснение работы парсера</title>
   </head>
   <body>
      <p>Какой-то наш код для примера</p>
      <?php 
      echo "Происходит исполнение скрипта"; 
      ?>
      <p>И снова код страницы</p>
   </body>
</html>

Способы вставки PHP кода

<?php echo 'Самая распространенная конструкция'; ?>

Этот способ вставки выигрывает у своих альтернатив по ряду причин:

  • Не требует дополнительной активации или чего-либо в этом роде (доступен всегда)
  • Может быть без опасений использован в файлах со стандартами кода XML и XHTML
  • В силу своей распространенности стал практически общепринятым стандартом вставки PHP скриптов
<script language="php">
   echo ("вариант вставки кода 2");
</script>

Данная конструкция хоть и не требует никаких предварительных настроек от нас, как и предыдущая, но на практике встречается на порядок реже, поскольку не несет в себе никаких преимуществ.

<? echo ("вариант вставки кода 3"); ?>
 <?= текст ?> То же самое, что и "<? echo текст ?>"

Не смотря на всю свою простоту и привлекательность есть ряд причин по которым эта конструкция для вставки PHP не получила всеобщего признания, как первая:

  • Чтобы его возможно было использовать, нужно зайти в файл php.ini , найти в нем строку содержащую short_open_tag и активировать данный вид вставки скриптов в HTML код (в случае скомпилированного кода используется опция —enable-short-tags)
  • Иногда могут появляться проблемы с их поддержкой на не родном сервере, потому если Вы не имеете доступа к платформе, где будут после располагаться вписанные подобным образом скрипты, то лучше не применять эту конструкцию.
  • С версии PHP 5.4 конструкция <?= будет верно истолкована парсером даже, если short_open_tag не будет активен, тем не менее ее применение на практике по-прежнему испытывает проблемы с совместимостью
<% echo 'последний вариант тегов для вставки кода'; %>
<%= $variable; # То же самое, что и "<% echo . . ." %>

Удобный на первый взгляд вариант также имеющий ряд проблем с применением на практике:

  • Этот вариант включения кода (еще называемый ASP) подключается в php.ini директивой asp_tags
  • Так же как и вариант 3 испытывают проблемы с переносимостью и совместимостью кода
  • Поддерживаются начиная с версии PHP 3.0.4

Продвинутые примеры вставки кода

  • Начиная с версии PHP 5.3 появилась возможность вставлять в код только открывающий тег <?php, чтобы все дальнейшее содержание интерпретировалось как скрипт.
  • <?php if ($expression) { ?> <p>Условие верно</p > <?php } else { ?> <p>Условие не верно</p> <?php } ?>
    Такая вставка отлично подходит для вывода больших фрагментов текста внутри скриптов. Это будет эффективнее, чем использовать конструкции по типу echo(), print() и тд.