Добро пожаловать в эту статью о том, как использовать PHP в HTML! Здесь мы попытаемся подробнее рассказать о том, как именно взаимодействуют PHP и HTML, на уровне конкретного файла .php. Другими словами, как на самом деле включить PHP в HTML и каким правилам можно, а каким нельзя следовать при объединении PHP и HTML?
Эта статья является частью нашей серии статей, в которой рассказывается об основах использования PHP для разработки WordPress, и основана на знаниях, почерпнутых из двух предыдущих статей:
Echo в PHP. echo — это то, как PHP выводит данные на страницу. Для целей этой статьи это, по сути, кнопка «преобразовать это в HTML» в PHP.
Функции PHP. Функции — это единицы работы, которые запускаются только при их вызове, и в этой статье рассматривается, как это ощущение «потока управления» влияет на вывод HTML, который фактически отправляется в браузер.
В качестве последнего замечания: чтобы узнать, что работает, а что нет при использовании PHP в HTML, более полезны конкретные примеры, чем теория. Итак, основная часть этой статьи посвящена примерам правильного использования PHP в HTML, с комментариями к каждому примеру кода.
Как включить PHP в HTML: типы файлов и другие соображения
По умолчанию вы не можете использовать PHP в HTML-файлах, то есть в файлах, которые заканчиваются на .html.
Первое, что нужно знать, это то, что по умолчанию вы не можете использовать PHP в HTML-файлах, то есть в файлах, которые заканчиваются на .html. Можно настроить свой сервер так, чтобы он разрешал использование PHP в html—файлах, но это выходит за рамки нашей компетенции, поэтому пока просто помните, что если вы хотите писать на PHP, вы хотите работать с php-файлами.
В среде WordPress об этом в значительной степени позаботились: весь WordPress основан на PHP, поэтому вам очень часто придется работать с файлами .php и почти никогда — с файлами .html.
В файле .php нет ничего, что отличало бы его от файла .html, за исключением того, что он может запускать PHP.
Еще одна вещь, которую вам следует знать: файл .php может работать точно так же, как файл .html, без использования PHP. Другими словами, в файле .php нет ничего, что делало бы его по своей сути “отличным” от файла .html, за исключением того, что он может запускать PHP.
Несколько примеров кода помогут вам понять, что мы подразумеваем под этим.
Как HTML-файлы взаимодействуют с HTML и PHP
Представьте, что у нас есть файл, index.html, который имеет следующее содержимое:
<!-- Filename: index.html -->
<h1>Я - HTML-разметчик.</h1>
Доступ к этому файлу index.html в вашем веб-браузере приведет к следующему результату: <h1> Я — HTML-разметка.</h1>
Теперь, что, если бы мы добавили следующее к index.html:
<!-- Filename: index.html -->
<h1>Я - HTML-разметчик.</h1><?php echo '<p>And I am PHP.</p>'; ?>
Доступ к этому файлу index.html в вашем веб-браузере приведет к следующему результату: <h1>Я - HTML-разметка.</h1><?php echo '<p>И я - PHP.</p>'; ?> Определенно, это не то, что мы хотим. Проблема в том, что по умолчанию HTML-файлы не «говорят» на PHP.
Как файлы .php реагируют на HTML и PHP
Теперь, что, если мы просто переименуем index.html в index.php и запустим оба примера еще раз?
<!-- Filename: index.php -->
<h1>Я - HTML-разметчик.</h1>
Это привело бы к выводу <h1>Я - HTML-разметчик.</h1>, точно так же, как и раньше. Другими словами, нет необходимости записывать PHP в файлы .php: файлы PHP прекрасно обрабатывают обычный HTML.
Вот второй пример:
<!-- Filename: index.php -->
<h1>Я - HTML-разметчик.</h1><?php echo '<p>А я - PHP.</p>'; ?>
В результате получился бы следующий чистый HTML-код: <h1> Я - HTML-разметчик.</h1><p>И я - PHP.</p>
Этот пример демонстрирует, что PHP—файлы (то есть файлы с расширением .php) могут автоматически интерпретировать PHP—код — все, что находится внутри тега <?php ?> — и преобразовать результирующий вывод в HTML.
Основы использования PHP в HTML
Вот основы того, как включить PHP в HTML. Это зависит от знания инструкции echo в PHP, которую мы рассмотрели в предыдущей статье.
Печать HTML-контента с помощью echo в PHP
Чтобы вывести HTML-контент в PHP, повторите его:
<div><?php echo 'Привет'; ?></div>
Вывод в браузер будет выглядеть следующим образом: <div>Привет</div>
Вывод HTML-тегов с помощью PHP
Вы можете использовать PHP для вывода HTML-тегов в разметку страницы:
<div><?php echo '<p>Привет</p>'; ?></div>
Вывод в браузер будет таким: <div><p>Здравствуйте</p></div>
Использование PHP внутри HTML-тегов
PHP может использоваться где угодно, в том числе внутри объявлений HTML-тегов и в кавычках («):
<div class="<?php echo 'big-element'; ?>">Привет</div>
В браузере будет выведено: <div class="big-element">Привет</div>
Подробная информация об открытии и закрытии тега PHP в HTML
Этот раздел основан на базовом понимании функций PHP, которое мы рассмотрели в предыдущей статье.
Открытие и закрытие тега PHP
Вы можете переключаться между HTML и PHP в любое время, открывая (<?php) и закрывая (?>) тег PHP:
<?php echo '<p>Я пришел с PHP.</p>' ?><p>И я пришел с HTML.</p><?php echo '<p>Вернемся к PHP и '; ?>теперь HTML.</p>
Вывод в браузер будет таким: <p>Я перешел с PHP.</p><p>И я перешел с HTML.</p><p>Вернемся к PHP и теперь к HTML.</p>
Разрывы строк в PHP-коде
Переносы строк (а также пробелы и отступы) могут использоваться любым способом в теге PHP:
<?php echo '<p>Я - PHP.</p>'; echo '<p>Все еще PHP.</p>'; ?><p>Теперь HTML.</p>
Вывод в браузер будет таким: <p>Я - PHP.</p><p>Все еще PHP.</p><p>Теперь HTML.</p>;
HTML внутри операторов PHP
HTML может входить в состав операторов и функций PHP всех видов, таких как if(), и будет просто выводиться как echo при запуске соответствующих строк кода.
<?php function print_greeting() { ?>
<p>HTML output from inside function.</p>
<?php } ?>
<?php print_greeting(); ?>
Выводом в браузер будет <p> вывод HTML из внутренней функции.</p>
Вы можете закрыть тег PHP и вернуться к обычному HTML внутри определения функции, инструкции if() или другого оператора PHP.
Другой способ описать этот пример кода — отметить, что вы можете закрыть тег PHP и вернуться к обычному HTML внутри определения функции, инструкции if() или другого оператора PHP.
Эти строки HTML будут напечатаны на странице при их выполнении, что зависит от потока управления логикой PHP на странице.
Объявления из предыдущих тегов <?php ?> По-прежнему сохраняются
PHP запомнит переменные, функции и другие объявления из ранее открытых и закрытых тегов PHP выше на странице:
<?php function print_greeting() { ?>
<p>Hello from function.</p>
<?php } ?>
<div>Plain HTML between two PHP tags.</div>
<?php $my_string = '<p>Hello from variable.</p>'; ?>
<div>Plain HTML between two PHP tags again.</div>
<?php print_greeting();
echo $my_string; ?>
Вывод в браузер будет таким: <div>Обычный HTML-код между двумя тегами PHP.</div><div>Снова обычный HTML-код между двумя тегами PHP.</div><p>Привет из функции.</p><p>Привет из переменной.</p>
Управление выводом HTML с помощью операторов PHP
PHP может управлять логическим потоком на странице, изменяя вывод.
Повторение вывода HTML с помощью цикла while()
Вот пример, в котором выполняется итерация (повтор) вывода HTML с использованием цикла while() PHP:
<p>
$i = 0; // $i starts out at 0
// This while()-loop will keep running as long as $i is less than 3
<?php while( $i < 3; ) : ?>
<span>Hello</span>
$i++; // This means "increase $i by 1"
<?php endwhile; ?>
</p>
Вывод в браузер будет таким: <p><span>Привет</span><span>Привет</span><span>Привет</span><span>Привет</span><span>Привет</span></p>
Вставка динамических значений в HTML с помощью PHP
Вставка динамических значений — значений, которые не определены заранее, но изменяются как переменные — в HTML с помощью цикла PHP while():
<p>
<?php while( $i = 0; $i < 3; $i++ ) : ?>
<span>Number <?php echo $i; ?></span>
<?php endwhile; ?>
</p>
Вывод в браузер будет таким: <p><span>Номер 0</span><span>Номер 1</span><span>Номер/span><span>Номер 1</span><span>Номер 2</span></p>
Этот базовый шаблон — динамический вывод HTML в цикле PHP while — используется движком контента WordPress Loop.
Управление выводом HTML с помощью условных обозначений PHP
Вы можете управлять выводом HTML с помощью условных обозначений PHP (if()-операторы):
<?php if( 1 === 1 ) { ?>
<p>Now you see me</p>
<?php } ?>
<?php if( 1 === 2 ) { ?>
<p>Now you don't</p>
<?php } ?>
Вывод в браузер будет таким: <p>Теперь вы видите меня</p>
В приведенном выше примере мы задали два вопроса, один из которых всегда является истинным, а другой — ложным.:
”Равно ли 1 1?» (Это всегда верно, поэтому код внутри оператора if всегда будет выполняться, выводя этот HTML-код на страницу.)
“Равно ли 1 2?” (Это никогда не соответствует действительности, поэтому код внутри оператора if никогда не будет выполнен, а его HTML-код не будет напечатан на странице.
Надеемся, что эти примеры кода дали вам представление об основах добавления PHP в HTML и о том, как PHP и HTML взаимодействуют на практике.
Спасибо за чтение!