html.okpython.net
HTML и CSS для начинающих

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

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

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

HTML Результат htmlCodes
<!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. Вставка кода PHP в html-документ

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

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

Пример №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-код, разрешается опускать закрывающий тег в конце файла, что иногда бывает очень полезным, т.к. позволяет избежать случайных символов пробелов или переводов строк после закрывающего тега.

Быстрый переход к другим страницам