Примеры сайтов     О курсах    

Построение сайта с помощью PHP при использовании файлов header и footer

 

  Примеры сайтов, созданных с помощью описанной здесь схемы, смотрите в конце этой страницы

Рассмотрим схему построения веб-сайта с использованием файлов header и footer. В данном случае необходимо весь html-код, отвечающий за дизайн (оформление) страницы убрать во внешние файлы:

 

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

 

Нашей задачей будет разбить html-код данной страницы на отдельные куски и наиболее часто используемые элементы дизайна разместить в отдельных файлах, которые будем подключать к странице с помощью функции include. Упрощенно HTML-код данной страницы можно записать следующим образом:

Листинг 1

<html>
<head>
<title>Title</title>
</head>

<body>
<table width="100%" border="1">
  <tr>
    <td width="200">Лого</td>
    <td>Баннер</td>
  </tr>
  <tr>
    <td>Меню</td>
    <td>
Текст</td>
  </tr>
  <tr>
    <td>Счетчик</td>
    <td>Copyright</td>
  </tr>
</table>
</body>
</html>

 

Здесь весь код, выделенный красным цветом, убираем в файл header.php, а код, выделенный синим цветом, в файл footer.php. Таким образом, на странице остается следующий код:

Листинг 2

<html>
<head>
<title>Title</title>

<? include('header.php')?>

Текст

<? include('footer.php')?>

 

Файлы header.php и footer.php следующие:

Листинг 3 – header.php

</head>

<body>
<table width="100%" border="1">
  <tr>
    <td width="200">Лого</td>
    <td>Баннер</td>
  </tr>
  <tr>
    <td>Меню</td>
    <td>

Листинг 4 – footer.php

</td>
  </tr>
  <tr>
    <td>Счетчик</td>
    <td>Copyright</td>
  </tr>
</table>
</body>
</html>

 

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

Листинг 5

<? include ($_SERVER["DOCUMENT_ROOT"]."/header.php"); ?>

 

 

Создание версии страницы для печати

Для создания версии страницы для печати необходимо модифицировать (изменять) html-код, отвечающий за дизайн (оформление) страницы. Весь html-код, отвечающий за оформление страницы, в данном примере располагается в файлах header.php и footer.php.

Будем проверять следующее условие:

  • Если существует элемент массива $_GET['print'] и имеет значение yes, то будем выдавать вариант оформления страницы для печати.
  • Если элемент массива $_GET['print'] не существует или имеет какое-либо другое значение, то будем выдавать вариант обычного оформления страницы.

Для вывода версии страницы для печати запрос к нашей странице будет выглядеть следующим образом:

Листинг 6

http://www.site.ru/page.php?print=yes



Здесь всё, что идет после знака вопроса (так называемая «строка запроса») передается нашей страницы как параметр и попадает в массив $_GET[]. PHP-код страниц header.php и footer.php в данном случае будет выглядеть следующим образом:

Листинг 7 – header.php и footer.php

<? if(@$_GET['print'] == 'yes') { ?>

    HTML-код варианта оформления страницы для печати

<? } else { ?>

    HTML-код обычного варианта оформления страницы

<? } ?>

 

Примечание
Символ "@" перед $_GET['print'] необходим для «подавления» вывода сообщения об ошибке в том случае, если данный элемент массива не существует

 

 

Изменение элементов оформления страницы

В данном примере весь html-код, отвечающий за оформление страницы, убран в отдельные файлы (в файлы header.php и footer.php), и эти файлы подключаются к страницам сайта в момент запроса посетителем. Однако часто бывает необходимо немного изменить оформление страницы. Например, страницы, относящиеся к разным разделам сайта, могут выглядеть немного по-разному. Чтобы в данном случае не делать разные файлы header.php и footer.php для различных частей (разделов) сайта, а ограничиться только двумя – соответственно одним файлом header.php и одним файлом footer.php, необходимо в PHP-код нашей страницы ввести некую переменную, например, переменную $punkt_menu:

Листинг 8

<html>
<head>
<title>Title</title>

<?
   $punkt_menu = "1"
   include('header.php')
?>


Текст

<? include('footer.php')?>

 

А на странице header.php или footer.php анализировать значение данной переменной и исходя из этого выбирать тот или иной html-код:

Листинг 9 – header.php или footer.php

...
HTML-код
...

<? if(@$punkt_menu == '1') { ?>

    HTML-код #1

<? } else { ?>

    HTML-код #2

<? } ?>

...
HTML-код
...

 

Примечание
Символ "@" перед переменной $punkt_menu необходим для «подавления» вывода сообщения об ошибке в том случае, если данная переменная не существует.

 

 

Примеры сайтов

 

Адрес Примечание Zip-архив
  webshop.ixit.ru Сайт построен с использованием файлов header и footer. Для динамического создания страниц на сервере используется язык PHP. Упрощенная схема создания приведена здесь. Есть версия страницы для печати.

     скачать
  php-site.ixit.ru Сайт построен по той же схеме, что и предыдущий, только в данном случае HTML-код упрощен для лучшего восприятия PHP-кода.

     скачать
  Полный список сайтов