Вставка в HTML

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

<p>Это будет проигнорировано.</p>
<?php echo 'А это будет обработано.'?>
<p>Это тоже будет проигнорировано.</p>

Можно использовать и более продвинутые структуры:

Пример #1 Продвинутое внедрение

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

Существует четыре набора тегов, которые могут быть использованы для обозначения PHP-кода. Из них только два <?php ?> и <script language="php"> </script>) всегда доступны. Другими двумя являются короткие теги и теги в стиле ASP, которые могут быть включены или выключены в конфигурационном файле php.ini. Хотя короткие теги и теги в стиле ASP могут быть удобны, они не так переносимы, как длинные версии, и поэтому не рекомендуются.

Замечание:

Кроме того, если вы намереваетесь вставлять PHP-код в XML или XHTML, чтобы соответствовать XML стандартам, ам следует использовать форму <?php ?>.

Пример #2 Открывающие и закрывающие теги PHP

1.  <?php echo 'если вы хотите работать с документами XHTML или XML, делайте так'?>

2.  <script language="php">
        
echo 'некоторые редакторы (например, FrontPage) не
              любят инструкции обработки'
;
    
</script>

3.  <? echo 'это простейшая инструкция обработки SGML'?>
    <?= выражение ?> Это синоним для "<? echo выражение ?>"

4.  <% echo 'Вы можете по выбору использовать теги в стиле ASP'; %>
    <%= $variable; # Это синоним для "<% echo . . ." %>

Несмотря на то, что теги указанные в первых двух примерах всегда доступны, наиболее широко используется (и рекомендуется) первый пример из этих двух.

Короткие теги (третий пример) доступны только когда они включены с помощью директивы short_open_tag в конфигурационном файле php.ini, либо если PHP был скомпилирован с опцией --enable-short-tags .

Теги в стиле ASP (четвертый пример) доступны только когда они были с помощью директивы asp_tags в конфигурационном файле php.ini.

Замечание:

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

Замечание:

В PHP 5.2 и более ранних версиях парсер не позволял файлам содержать только один открытый тег <?php. Это было разрешено, начиная с версии PHP 5.3.

Замечание:

Начиная с версии PHP 5.4, короткий тег вывода <?= распознается всегда, вне зависимости от значения директивы short_open_tag.


Участник рейтинга Тэглайн 2010