Серверные сценарии на РНР. Динамическое создание страниц

В этом разделе сайта будут рассмотрены основные принципы и примеры создания серверных сценариев на языке РНР для решения типичных задач разработки веб-сайтов.

Динамическое создание страниц

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

Простые ссылки

По ссылкам пользователь может переходить как на обычные страницы HTML, так и на страницы, содержащие код РНР.

Пример:

<a href="168.php" target="_blank">Дата и время</a>

Если щелкнуть на ссылке, в браузере будет загружена страница с именем 168.php. Просто, не правда ли? Развивая приведенный пример, можно воспользоваться переменной для построения динамической ссылки:

<?php
$link="168.php";
echo "<a href='$link'>Дата и время</a>";
?>

В окне веб-браузера это будет выглядеть ТАК.

Для быстрого вывода списка ссылок в браузере можно воспользоваться массивом:

<?php
// Создать массив разделов
$cont=array("phpstage", "phpstage1", "phpstage2", "phpstage3");

// Перебрать и последовательно вывести каждый элемент массива
for($i=0; $i<count($cont); $i++)
print " <a href = '$cont[$i] .html'>$cont[$i]</a><br>\n";
?>

В окне веб-браузера это будет выглядеть ТАК.

Шаблоны

Шаблоном (применительно к веб-программированию) называется часть веб-документа, которую вы собираетесь использовать в нескольких страницах. Шаблоны, как и функции РНР, избавляют вас от лишнего копирования/вставки фрагментов содержания страницы и программного кода. С увеличением масштабов сайта значение шаблонов возрастает, поскольку они позволяют легко и быстро проводить модификации на уровне целого сайта. В этом разделе будут описаны некоторые возможности, которые открываются при использовании простейших шаблонов.

Как правило, общие фрагменты содержания/кода (то есть шаблоны) сохраняются в отдельных файлах. При построении веб-документа вы просто «включаете» эти файлы в соответствующие места страницы.

Включение одного или нескольких файлов в сценарий осуществляется стандартными функциями РНР require() и include().

Функции для включения файлов в сценарии РНР:

С увеличением размеров сайта может оказаться, что некоторые файлы включаются в сценарий по несколько раз. Иногда это не вызывает проблем, но в некоторых случаях повторное включение файла приводит к сбросу значений изменившихся переменных. Если во включаемом файле определяются функции, могут возникнуть конфликты имен. Учитывая сказанное, мы приходим к следующей функции — require_once().

Построение компонентов

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

Создадим файл-заголовок.

Пример файла заголовка 228.php:

<?
// Файл: 228.php
// Назначение: заголовочный файл для сайта.
// Дата: 28 января 2009 г
.
$site_name = "Основы РНР";
$site_title = "Динамическое создание страниц";
$site_email= "[email protected]";
$site_path = "http://localhost/phpstage24";

?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title><? print $site_title; ?></title>
<style type="text/css">
<!--
.стиль1 {
font-family: "Times New Roman", Times, serif;
color: #CC0000;
}
-->
</style>
</head>
<body>
<table width="950" border="1" cellpadding="5" align="center">
<tr>
<td valign="top">
<h1 align="center" class="стиль1"><?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».

Пример создания файла-колонтитула 230.php:

<style type="text/css">
<!--
.стиль2 {color: #0000FF}
-->
</style>
<table width="950" border="1" cellpadding="5">
<tr>
<td valign="top" align="left"><span class="стиль2">&copy; Смирнов В.И. &nbsp;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>

Создаем основную часть файла. К основной части страницы подключается содержимое заголовка и колонтитула. В сущности, именно основная часть содержит информацию, интересующую посетителей сайта. Заголовок эффектно выглядит, колонтитул содержит полезные сведения, но именно ради основной части страницы пользователи снова и снова возвращаются на сайт.

Пример создания основной части страницы 231.php:

<table width="950" border="1" cellpadding="5">
<tr>
<td valign="top">
<a href = "<?=$site_path;?>/phpstage2.html">Основы РНР</a> <br>
<a href = "<?=$site_path;?>/phpstage3.html">Пример PHP-программы</a> <br>
<a href = "<?=$site_path;?>/phpstage4.html">Типы данных</a> <br>
<a href = "<?=$site_path;?>/phpstage5.html">Переменные, константы,
выражения</a> <br>
<a href = "<?=$site_path;?>/phpstage6.html">Ссылочные переменные</a> <br>
<a href = "<?=$site_path;?>/phpstage7.html">Выражения</a> <br>
</td>
</tr>
</table>

А теперь соединим все вместе в файл 232.php.

<?php
// Файл: 232.php

// Назначение: домашняя страница

// Дата: 28 января 2009 г.

// Вывести заголовок

include ("228.php");

// Вывести основную часть

include ("231.php");

// Вывести колонтитул

include ("230.php");

?>

В окне веб-браузера это будет выглядеть ТАК.

назадвверхвперед
Rambler's Top100