Использование функций include и require

До этого момента мы писали сценарии для работы с базами данных, обработ
ки HTMLформ, сохранения cookie и многого другого, но все наши программы
состояли только из одного файла. Однако, как только мы начинаем разрабаты
вать сложные сайты, практика переписывания одних и тех же функций в каж
дом сценарии становится неэффективной. Поразмыслив, вы наверняка обна
ружите, что HTMLдизайн и PHPфункции используются на многих страницах
Webресурсов. Можно размножать эту общую информацию в каждом отдельном
сценарии, но, если вдруг возникнет необходимость внести какиелибо измене
ния, делать это придется во многих местах. Массу времени удастся сэкономить,
создав отдельные файлы для общего кода и включив их в PHPсценарии с по
мощью одной из двух инструкций: include () и require ( ) . Синтаксис при этом
будет выглядеть следующим образом:


include("file.php");
require ("£Це.рпр") ;

Обе команды работают почти одинаково, за исключением одного суще
ственного различия. Независимо от того, в каком месте сценария имеется ин
струкция require ( ) , ею всегда будет вставлен требуемый файл, даже если блок
кода, где она задана, в данный момент не работает. Функция include ( ) , наоборот,
включит код из файла, только если она действительно вызвана. Поэтому необ
ходимо использовать команду require ( ) , когда файл должен быть включен,
и include ( ) , если файл в зависимости от обстоятельств может быть включен
или нет.

Что делают эти команды? Каждая из них включает указанный файл в основ
ной (чтобы было более понятно, будем называть файл, который содержит
строку include ( ) или require ( ) , родительским файлом). Любой код внутри фай
ла будет трактоваться как обычный код HTML, если он не находится внутри
PHPскобок в самом включенном файле. Любые переменные, имеющиеся в ро
дительском документе до вызова команд include () или require ( ) , доступны
включенному файлу, и любые переменные из включенного файла будут доступ
ны родительскому документу после вызова этих функций.

Включаемые файлы стоит использовать по нескольким причинам. Можно
поместить свои собственные функции в общий файл. Удобно также хранить
информацию доступа к базе данных в едином конфигурационном файле. Для
начала поместим наш HTMLдизайн во включаемые файлы, чтобы он мог быть
использован в нескольких страницах.
Выполнение действия

  1. Создайте новый PHPдокумент в текстовом редакторе.

  2. <HTML>
    <HEAD>
    <TITLE>

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

  3. Используйте для печати заголовка страницы код, представленный ниже.

  4. <?php
    print ("$PageTitle");
    ?>

    Значение переменной $PageTitle будет присвоено в родительском докумен
    те и затем использовано здесь для заголовка страницы, который выводится на
    экран в самом верху окна браузера (рис. 13.1).

  5. Закончите HTMLзаголовок.

  6. </TITLE>
    </HEAD>
    <BODY>

  7. Создайте таблицу, которая будет управлять разбивкой страницы.

  8. <TABLE WIDTH="75%" ALIGN=CENTER BORDER=0>
    <TRxTD ALIGN=CENTERxB>Welcome to the Site!</Bx/TDxTR>
    <TRxTD ALIGN=LEFTxP>

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

  9. Сохраните сценарий как header.php (листинг 13.1) и загрузите его на Web
    сервер.
  10. Листинг 13.1 т Это первый включаемый файл, который содержит HTML
    заголовок, а также начало таблицы. Поскольку каждая страница имеет свой за
    головок, используется переменная, печатающая соответствующие значения.


    1 <HTML>
    2 <HEAD>
    3 <TITLE>
    4 < ?php
    5 print ("$PageTitle");
    6 ?>
    7 </TITLE>
    8 </HEAD>
    9 <BODY>
    10 <TABLE WIDTH="75411 ALIGN»CENTER BORDER=0>
    11 <TRxTD ALIGN=CENTERxB>Welcome to the SiteK/Bx/TDxTR>
    12 <TRxTD ALIGN=LEFTxP>

    Напишем второй включаемый файл для нижнего колонтитула.

  11. Создайте новый PHPдокумент в текстовом редакторе.
  12. Закройте вторую строку таблицы разбивки страницы.

  13. <Px/TDx/TR>

  14. Напишите код для последней, третьей строки таблицы, которая будет со
    держать информацию об авторском праве.

  15. <TRxTD ALIGN=CENTERxSMALL>Copyright 2001</SMALLx/TDx/TR>

  16. Закройте таблицу и HTMLстраницу.

  17. </TABLE>
    </BODY>
    </HTML>

  18. Сохраните сценарий как footer.php (листинг 13.2) и загрузите его на сер
    вер. Как только два включаемых файла готовы, можно приступать к созда
    нию родительских страниц.
  19. Листинг 13.2 т Это второй включаемый файл, который завершит создание
    таблицы и закончит HTMLстраницу. Здесь также представлена информация
    об авторском праве.


    1 <Px/TDx/TR>
    2 <TRxTD ALIGNCENTERxSMALL>Copyriaht 2001</SMALLx/TDx/TR>
    3 </TABLE>
    4 </BODY>
    5 </HTML>

  20. Создайте новый PHPдокумент в текстовом редакторе.

  21. <?php

  22. Присвойте имя страницы переменной $PageTitle.


  23. $PageTitle = "Home Page";

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

  24. Включите файл заголовка.

  25. require ("header.php");

    В этом случае не имеет значения, какая из двух функций применяется, но
    мы использовали require ( ) для того, чтобы гарантировать включение. Данная
    строка поместит весь код файла header.php в эту страницу. Строка должна сто
    ять в сценарии после того, как переменной $PageTitle присвоено значение,
    иначе страница не будет иметь заголовка.

  26. Создайте содержимое страницы.

  27. print ("Content for the home page goes here.n");
    ,. print ("<P>Click <A target="_blank" href="page2.php">
    here</A> to goto the next page.Xn");

    Сюда включено только простое сообщение и ссылка на вторую страницу. Вы
    можете поместить любое содержание, включая то, которое динамически гене
    рируется РНР.

  28. Включите файл нижнего колонтитула и закройте страницу.

  29. require ("footer.php");

  30. Сохраните страницу как index.php (листинг 13.3) и загрузите ее на сервер.
  31. Листинг 13.3 т Как только вы создали два включаемых файла, команда
    require ( ) помещает их в родительский файл для создания всей страницы «на
    лету».


    1 < ?php
    2 $PageTitle = "Home Page";
    3 require ("header.php");
    4 print ("Content for the home page goes here.n");
    5 print ("<P>Click <A target="_blank" href="page2 .php">here</A>
    to go to the next page.n");
    6 require ("footer.php");
    7 ?>

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

  32. Создайте новый PHPдокумент в текстовом редакторе.

  33. <?php
    $PageTitle = "Second Page";
    require ("header.php");
    print ("Content for the second page goes here.n");
    require ("footer.php");

    Чтобы отличать эту страницу от файла index.php, мы присвоили перемен
    ной $PageTitle новое значение, а затем изменили инструкцию print ( ) .

  34. Сохраните сценарий как page2.php (листинг 13.4), загрузите его на сервер
    и протестируйте вместе с файлом index.php в браузере (рис. 13.113.3).
    Листинг 13.4 т Это еще один родительский файл, во многом идентичный
    сценарию, данному в листинге 13.3. Независимо от количества страниц на ва
    шем сайте всеми ими может быть использован этот базовый шаблон.


1 <?php
2 $PageTitle = "Second Page";
3 require ("header.php");
4 print ("Content for the second page goes here.n");
5 require ("footer.php");
6 ?>

Желательно использовать расширение .php, а не ,inc, которое некоторые програм
мисты применяют для включаемых файлов. Хотя для родительского файла РНР это
не имеет значения, ловкий пользователь иногда может посмотреть исходный текст
файла .inc, а вкладываемого файла .php нет (рис. 13.4 и 13.5).

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: