В этом разделе сайта будут рассмотрены основные принципы и примеры создания серверных сценариев на языке РНР для решения типичных задач разработки веб-сайтов.
Здесь мы рассмотрим каким образом можно модифицировать содержимое веб-страниц и осуществлять навигацию при помощи ссылок и различных стандартных функций.
Простые ссылки
По ссылкам пользователь может переходить как на обычные страницы HTML, так и на страницы, содержащие код РНР.
Пример:
<?php
$link="../phppage20.php";
echo "<a href='$link'>Дата и время</a>";
?>
Для быстрого вывода списка ссылок в браузере можно воспользоваться массивом:
<?php
// Создать массив разделов
$cont=array("../phppage1", "../phppage2", "../phppage3", "../phppage4");
// Перебрать и последовательно вывести каждый элемент массива
for($i=0; $i<count($cont); $i++)
print " <a href = '$cont[$i].php'>$cont[$i]</a><br>\n";
?>
В окне веб-браузера это будет выглядеть ТАК.
Шаблоны
Шаблоном (применительно к веб-программированию) называется часть веб-документа, которую вы собираетесь использовать в нескольких страницах. Шаблоны, как и функции РНР, избавляют вас от лишнего копирования/вставки фрагментов содержания страницы и программного кода. С увеличением масштабов сайта значение шаблонов возрастает, поскольку они позволяют легко и быстро проводить модификации на уровне целого сайта. В этом разделе будут описаны некоторые возможности, которые открываются при использовании простейших шаблонов.
Как правило, общие фрагменты содержания/кода (то есть шаблоны) сохраняются в отдельных файлах. При построении веб-документа вы просто «включаете» эти файлы в соответствующие места страницы.
Включение одного или нескольких файлов в сценарий осуществляется стандартными функциями РНР require()
и include()
.
Функции для включения файлов в сценарии РНР:
include(имя_файла)
— включает содержимое файла в сценарий.-
У функции
include()
есть одна интересная особенность — ее можно выполнять условно. Например, если вызов функции включен в блок командыif
то файл включается в программу лишь в том случае, если условиеif
истинно. Если функцияinclude()
используется в условной команде, то она должна быть заключена в фигурные скобки или в альтернативные ограничители.Пример:
<?php
if (some_conditional) {
include("2.php");
}
else {
include("1.html");
}
?>В окне веб-браузера это будет выглядеть ТАК.
include_once(имя_файла)
— делает то же, что иinclude()
, за одним исключением: прежде чем включать файл в программу, она проверяет, не был ли он включен ранее. Если файл уже был включен, вызовinclude_once()
игнорируется, а если нет — происходит стандартное включение файла. Во всем остальномinclude_once()
ничем не отличается отinclude()
.require(имя_файла)
— похожа наinclude(
) — она тоже включает шаблон в тот файл, в котором находится вызовrequire()
. Тем не менее, между функциямиrequire()
иinclude()
существует одно важное различие. Файл, определяемый параметромrequire()
, включается в сценарий независимо от местонахожденияrequire()
в сценарии. Например, при вызовеrequiге()
в блокеif
при ложном условии файл все равно будет включен в сценарий!-
Во многих ситуациях бывает удобно создать файл с переменными и другой информацией, которая используется в масштабах сайта, и затем подключать его по мере необходимости. Имя этого файла выбирается произвольно. Назовем его 80.php.
Пример:
<?php
$site_title = "Основы РНР";
$contact_email = "[email protected]";
$contact_name = "Sevidi";
?>Пример использования этого файла:
<?php require('80.php ');?>
<html>
<head>
<meta charset="utf-8">
<title><? print $site_title; ?></title>
</head>
<body>
<?php
print "Добро пожаловать на сайт. Контакты: <a href = mailto:$contact_email; > $contact_name</a>.";
?>
</body>
</html>В окне веб-браузера это будет выглядеть ТАК.
С увеличением размеров сайта может оказаться, что некоторые файлы включаются в сценарий по несколько раз. Иногда это не вызывает проблем, но в некоторых случаях повторное включение файла приводит к сбросу значений изменившихся переменных. Если во включаемом файле определяются функции, могут возникнуть конфликты имен. Учитывая сказанное, мы приходим к следующей функции —
require_once()
. require_once(имя_сайта)
— гарантирует, что файл будет включаться в сценарий всего один раз. После вызоваrequirе_оnсе()
все дальнейшие попытки включения того же файла игнорируются. Если не считать дополнительной проверки, в остальном эта функция аналогичнаrequire()
.
Построение компонентов
Как правило, в большинстве правильно организованных веб-сайтов присутствует заголовок, который практически не изменяется; в основной части выводится запрашиваемое содержание сайта, поэтому она часто изменяется; наконец, колонтитул содержит информацию об авторских правах и навигационные ссылки. Колонтитул, как и заголовок, обычно остается неизменным.
Создадим файл-заголовок.
<?
// Файл: 228.php
// Назначение: заголовочный файл для сайта sevidi
// Дата: 28 января 2009 г.
//////////////////////////////////////////////////////////////////////
$site_name = "Основы РНР";
$site_title = "Динамическое создание страниц";
$site_email= "[email protected]";
$site_path = "..";
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title><? print $site_title; ?></title>
<style type="text/css">
<!--
table{font-size:14px;
font-family:Verdana, Geneva, sans-serif;
color:#000000;
}
h1{ font-size:18px;
color: #CC0000;
text-align:center
}
.bottom{ font-size:12px; color:#0000FF}
-->
</style>
</head>
<body>
<table width="950" border="1" cellpadding="5" >
<tr>
<td valign="top" bgcolor="#3300FF">
<h1><?php print $site_name?></h1></td>
</tr>
<tr>
<td valign="top">
<?php
// Вывести текущую дату и время
print date ("F d, h:i a");
?>
</td>
</tr>
</table>
А теперь создадим файл-колонтитул. Колонтитулом обычно называется информация, расположенная в нижней части страниц сайта, — контактные данные, ссылки и информация об авторских правах. Эту информацию можно разместить в отдельном файле и включать в качестве шаблона так же, как это делается с заголовком. Допустим, c наступлением нового года вам потребовалось изменить информацию об авторских правах и привести ее к виду «Copyright © 2000-2001».
<table width="950" border="1" cellpadding="5" >
<tr>
<td valign="top" align="left"><span class="bottom">© Смирнов В.И. 2008-2009</span>| <a href = "mailto:<?=$site_email;?>" target="_blank">Контакты </a>|<a href =
"<?=$site_path;?>/phpstage24.html" target="_blank">Основы РНР</a></td>
</tr>
</table>
</body>
</html>
Создаем основную часть файла. К основной части страницы подключается содержимое заголовка и колонтитула. В сущности, именно основная часть содержит информацию, интересующую посетителей сайта. Заголовок эффектно выглядит, колонтитул содержит полезные сведения, но именно ради основной части страницы пользователи снова и снова возвращаются на сайт.
<table width="950" border="1" cellpadding="5">
<tr>
<td valign="top">
<a href = "<?=$site_path;?>/phppage4.php">Пример PHP-программы</a> <br>
<a href = "<?=$site_path;?>/phppage5.php">Типы данных</a> <br>
<a href = "<?=$site_path;?>/phppage6.php">Переменные, константы,
выражения</a> <br>
<a href = "<?=$site_path;?>/phppage7.php">Ссылочные переменные</a> <br>
<a href = "<?=$site_path;?>/phppage8.php">Выражения</a> <br>
</td>
</tr>
</table>
А теперь соединим все вместе в один файл
<?php
// Файл: 85.php
// Назначение: домашняя страница
// Дата: 28 января 2009 г
// Вывести заголовок
include ("82.php");
// Вывести основную часть
include ("84.php");
// Вывести колонтитул
include ("83.php");
?>
В окне веб-браузера это будет выглядеть ТАК.
Комментарии(0)
Для добавления комментариев надо войти в систему и авторизоватьсяКомментирование статей доступно только для зарегистрированных пользователей:Зарегистрироваться