Вставка php-кода в html-документ
belarusweb.net
© Петр Романовский Минск, 2016-2018.



belarusweb.net
Основы создания сайтов...

Вставка php-кода в html-документ

PHP тесно связан с HTML, поэтому очень часто приходится использовать не чистые php-скрипты, а смесь со вставками php-кода в html-документ. С другой стороны PHP выполняется на сервере и способен сам генерировать html-страницы, которые он и отсылает клиенту.

Для того, чтобы интерпретатор PHP мог понять, что он имеет дело именно с php-кодом, а не с тегами HTML или кодом другого языка, применяются специальные теги <?php и ?>, которые указывают ему где начинается и заканчивается непосредственно код PHP. В примере 1.1 показан простой файл, представляющий собой смесь из HTML и PHP.

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">	
	<title>Первый php-скрипт</title>
</head>
<body>
	<?php 
		/* Оператор echo выводит строки, перечисляемые через запятую, 
		в код html-документа */
		echo 'Эта строка будет сперва обработана интерпретатором PHP <br>
			   и только потом отдана по запросу серверу для дальнейшей <br>
				отправки браузеру клиента.';
	?>
	
	<p>
		А эта строка не будет обработана PHP, <br>
		т.к. она находится вне тегов &#60;?php и &#62;. Она будет <br>
		отдана по запросу серверу, а затем и браузеру клиента без <br>
		обработки в первоначальном виде.
	</p>
</body>
</html>

Пример 1.1. Вставка кода PHP в html-документ

Таким образом, в большинстве случаев все, что находится вне указанных открывающего и закрывающего тегов, будет проигнорировано интерпретатором PHP и отдано по запросу без изменения за исключением случая, когда внутри php-кода используется условный оператор, который определяет, что следует пропустить, а что нет. Так в примере 1.2, интерпретатор PHP пропустит блок html-кода, который не соответствует условию оператора if (будет рассмотрен позже).

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">	
	<title>Введение в PHP</title>
</head>
<body>
	<?php 
		$a=5; 		//присвоили переменной значение 
		if($a==5){  //разрываем код PHP 
	?>
	<p>
		Эта часть кода html-страницы будет выдана по запросу<br>
		без изменения, т.к. условие истинно.
	</p>
	<?php 
		}else{ 		//эта часть выполнится только, если $a не равно 5
	?>
	<p>
		А вот этот абзац не будет показан, т.к. $a==5 (равно).
	</p>
	<?php 
		}  			//оператор if и другие будут рассмотрены позже
	?>
</body>
</html>

Пример 1.2. Еще один вариант вставки кода PHP в html-документ

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

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

Добавим, что всего существует четыре набора тегов для обозначения php-кода: <?php и ?>, <script language="php"> и </script>, которые доступны всегда, а также короткие теги <? и ?>, <% и %>, которые доступны, только если они включены с помощью соответствующих директив в конфигурационном файле php.ini, или PHP был скомпилирован с опцией --enable-short-tags. Мы всегда будем использовать первую пару тегов, тем более, что в HTML 5 атрибут language считается устаревшим.

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

Видеоуроки по курсу PHP

Комментарии (2)

Петр Романовский
1. Приветствуются комментарии, которые содержат дополнения к материалу текущей страницы, а также ваши ответы на вопросы других пользователей.
2. Если вам что-то непонятно - спрашивайте, не забывая написать, что именно и с какого места.
Dias
Здравствуйте, я не понял один момент. Что значит следующий код <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Первый php-скрипт</title> </head> <body> ?
№133 от 2018-03-21 07:54:57
Нравится ()
Ответить
Петр Романовский
Dias
Dias
Здравствуйте, я не понял один момент. Что значит следующий код <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Первый php-скрипт</title> </head> <body> ?
2018-03-21 07:54:57
Dias, это вступительная часть кода html-страницы, в которую далее и вставляется php-код. Без php-кода страница содержит только абзац в теле документа. Если вы не знакомы с HTML, желательно хотя бы бегло ознакомиться с соответствующим разделом.
№134 от 2018-03-21 10:21:53
Нравится ()
Ответить
Показаны все комментарии
Чтобы оставить свой комментарий, авторизуйтесь, пожалуйста!