belarusweb.net
© Петр Романовский Минск, 2016-2017.



belarusweb.net

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

PHP+MySQL >>>

                          Учебник Задачник Справочник

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

Контрольные вопросы и задания

  1. Каким образом происходит вставка кода PHP в html-документ? В каком месте html-документа разрешается вставлять php-код?
  2. В каком случае код результирующей html-страницы будет удален интерпретатором PHP в ходе ее формирования по запросу пользователя?
  3. Нужны ли дополнительные настройки сервера для того, чтобы PHP искал php-код в файлах с расширением .html?
  4. Перечислите все виды тегов для выделения блоков php-кода?

Словарь новых английских слов

brackets [ˈbrækəts] – скобки.
square [skwɛː] – квадрат, квадратный.
angle [ˈæŋɡl] – угол, угловой.
curly [ˈkəːli] – фигурный, изогнутый, волнистый.
round [raʊnd] – круглый.
preprocessor [ˌpriːˈprəʊsɛsə] – предпроцессор.
hypertext [ˈhaɪpərtekst] – гипертекст.
camel [ˈkam(ə)l] – верблюд.
case [keɪs] – регистр клавиатуры.
try [traɪ] – пытаться, попытка.
catch [kætʃ] – поймать, захват.
snake [sneɪk] – змея, извиваться.
if [ɪf] – если.
global [ˈɡloʊbl] – глобальный, всеобщий.
local [ˈləʊk(ə)l] – локальный, местный.
static [ˈstætɪk] – статический, неподвижный.
define [dɪˈfʌɪn] – определять.
constant [ˈkɑːnstənt] – константа, постоянная.
echo [ˈekoʊ] – вторить, повторять, эхо.
unset [ʌnˈsɛt] – сбросить, удалить (переменную).
Комментарии (0)
Петр Романовский
1. Приветствуются комментарии, которые содержат дополнения к материалу текущей страницы, а также ваши ответы на вопросы других пользователей.
2. Если вам что-то непонятно - спрашивайте, не забывая написать, что именно и с какого места.
Показаны все комментарии
Чтобы оставить свой комментарий, авторизуйтесь, пожалуйста!    
     
belarusweb.net © Петр Романовский, Минск, 2016-2017.
Связаться с автором
Наверх