У вас вопросы?
У нас ответы:) SamZan.net

ЛАБОРАТОРНАЯ РАБОТА 5 МНОГОКРАТНОЕ ИСПОЛЬЗОВАНИЕ КОДА 1

Работа добавлена на сайт samzan.net: 2015-07-10

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 20.5.2025

ЛАБОРАТОРНАЯ РАБОТА №5

МНОГОКРАТНОЕ ИСПОЛЬЗОВАНИЕ КОДА

1. Использование оператора require()

Оператор require() позволяет нам разбить текст программы на несколько файлов. Его формат такой:

require (имя_файла);

При запуске (именно при запуске, а не при исполнении!) программы интерпретатор просто заменит инструкцию на содержимое файла имя_файла (этот файл может также содержать сценарий на PHP, обрамленный, как обычно, тэгами <? и ?>). Причем сделает он это только один раз (в отличие от include): а именно, непосредственно перед запуском программы.

Например, в файле с именем reusable.php хранится следующий код:

<?php

 echo 'А это очень простой PHP-оператор.<br />';

?>

В файле с именем main.php хранится такой код:

<?php

 echo "Это главный файл.<br />";

 require( "reusable.php" );

 echo "Сейчас сценарий должен завершиться.<br />";

?>

Когда Вы загружаете файл reusable.php, в окне браузера отображается текст: «А это очень простой PHP-оператор.». При загрузке файла main.php происходит нечто более интересное. Вывод этого сценария показан на рисунке:

При выполнении файла main.php оператор require() заменяется содержимым запрошенного файла. То есть файл main.php выполняется так, как если бы он имел следующий вид:

<?php

 echo "Это главный файл.<br />";

 echo 'А это очень простой PHP-оператор.<br />';

 echo "Сейчас сценарий должен завершиться.<br />";

?>

РНР игнорирует расширение имени запрашиваемого оператором require() файла. Это означает, что файл можно называть как угодно, если Вы только не собираетесь вызывать его непосредственно.

Пример:

Сайт вымышленной компании содержит несколько страниц, и все они выглядят как страница, изображенная на рис.

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

Непосредственное многократное использование разделов HTML, общих для всех страниц – это более рациональный подход. Исходный код начальной страницы (home.html), показанной на рисунке выше, приведен в следующем листинге.

<html>

<head>

 <title>TLA Consulting Pty Ltd</title>

 <style>

   h1 {color:white; ; text-align:center;

       font-family:arial,sans-serif}

   .menu {color:white; ; text-align:center;

          font-family:arial,sans-serif; font-weight:bold}

   td {background:black}

   p {color:black; ; text-align:justify;

      font-family:arial,sans-serif}

   p.foot {color:white; ; text-align:center;

           font-family:arial,sans-serif; font-weight:bold}

   a:link,a:visited,a:active {color:white}

 </style>

</head>

<body>

 <!-- верхний колонтитул страницы -->

 <table width="100%" cellpadding="12" cellspacing="0" border="0">

 <tr bgcolor="black">

   <td align="left"><img src="../files/235/files/235/logo.gif"></td>

   <td>

       <h1>TLA Consulting</h1>

   </td>

   <td align="right"><img src="../files/235/files/235/logo.gif"></td>

 </tr>

 </table>

 <!-- меню -->

 <table width="100%" bgcolor="white" cellpadding="4" cellspacing="4">

 <tr >

   <td width="25%">

     <img src="../files/235/files/235/s-logo.gif"> <span class="menu">Домой</span></td>

   <td width="25%">

     <img src="../files/235/files/235/s-logo.gif"> <span class="menu">Контакт</span></td>

   <td width="25%">

     <img src="../files/235/files/235/s-logo.gif"> <span class="menu">Услуги</span></td>

   <td width="25%">

     <img src="../files/235/files/235/s-logo.gif"> <span class="menu">Карта сайта</span></td>

 </tr>

 </table>

 <!-- содержимое страницы -->

 <p>Добро пожаловать на сайт компании TLA Consulting.

 Пожалуйста, уделите некоторое время на знакомство с нами.</p>

 <p>Мы специализируемся на обслуживании ваших деловых нужд

 и надеемся скоро вас увидеть снова.</p>

 <!-- нижний колонтитул страницы -->

 <table width="100%" bgcolor="black" cellpadding="12" border="0">

 <tr>

   <td>

     <p class="foot">&copy; TLA Consulting Pty Ltd.</p>

     <p class="foot">Пожалуйста, просмотрите <a href="legal.php4">нашу страницу с официальной информацией</a></p>

   </td>

 </tr>

 </table>

</body>

</html>

Этот файл можно разделить на 3 части. Верхнюю и нижнюю части назовем header.inc и footer.inc.

Содержимое header.inc:

<html>

<head>

 <title>TLA Consulting Pty Ltd</title>

 <style>

   h1 {color:white; ; text-align:center;

       font-family:arial,sans-serif}

   .menu {color:white; ; text-align:center;

          font-family:arial,sans-serif; font-weight:bold}

   td {background:black}

   p {color:black; ; text-align:justify;

      font-family:arial,sans-serif}

   p.foot {color:white; ; text-align:center;

           font-family:arial,sans-serif; font-weight:bold}

   a:link,a:visited,a:active {color:white}

 </style>

</head>

<body>

 <!-- верхний колонтитул страницы -->

 <table width="100%" cellpadding="12" cellspacing="0" border="0">

 <tr bgcolor="black">

   <td align="left"><img src="../files/235/files/235/logo.gif"></td>

   <td>

       <h1>TLA Consulting</h1>

   </td>

   <td align="right"><img src="../files/235/files/235/logo.gif"></td>

 </tr>

 </table>

 <!-- меню -->

 <table width="100%" bgcolor="white" cellpadding="4" cellspacing="4">

 <tr >

   <td width="25%">

     <img src="../files/235/files/235/s-logo.gif"> <span class="menu">Домой</span></td>

   <td width="25%">

     <img src="../files/235/files/235/s-logo.gif"> <span class="menu">Контакт</span></td>

   <td width="25%">

     <img src="../files/235/files/235/s-logo.gif"> <span class="menu">Услуги</span></td>

   <td width="25%">

     <img src="../files/235/files/235/s-logo.gif"> <span class="menu">Карта сайта</span></td>

 </tr>

 </table>

Содержимое footer.inc:

<!-- верхний колонтитул страницы -->

 <table width="100%" bgcolor="black" cellpadding="12" border="0">

 <tr>

   <td>

     <p class="foot">&copy; TLA Consulting Pty Ltd.</p>

     <p class="foot">Пожалуйста, просмотрите

                   <a href="legal.php4">нашу страницу с официальной информацией</a></p>

   </td>

 </tr>

 </table>

</body>

</html>

Файл home.php будет служить заменой для home.html  и будет содержать уникальное содержимое страницы и 2 оператора require():

<?php

 require('header.inc');

?>

 <!-- содержимое страницы -->

 <p>Добро пожаловать на сайт компании TLA Consulting.

 Пожалуйста, уделите некоторое время на знакомство с нами.</p>

 <p>Мы специализируемся на обслуживании ваших деловых нужд

 и надеемся скоро вас увидеть снова.</p>

<?php

 require('footer.inc');

?>

2. Использование оператора include()

При использовании оператора include(), в отличие от require(), включаемый файл вставляется "в сердце" нашего сценария не перед его выполнением, а прямо во время.

В отличие от файлов, загруженных при помощи require(), файлы, загруженные при помощи include(), могут возвращать значение.

Пример:

Существует необходимость часто открывать файлы. Вместо того, чтобы каждый раз повторно вводить одни и те же строки кода, мы хотим, чтобы это делал за нас включенный файл. Назовем его openfile.inc и придадим ему такой вид:

<?php

@ $fp = fopen($name, $mode);

if (!$fp)

{

echo '<p><strong>Невозможно открыть файл.</strong></p>';

return 0;

}

else

{

return 1;

}

?>

Вызывать файл будем из следующего сценария:

<?php

$name = 'file.txt';

$mode = 'r';

$result = include('openfile.inc');

if($result == 1)

{

echo "Все нормально";

}

?>

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

3. Передача параметров по ссылке через адресную строку

Достаточно часто встречаются сайты, ссылки которых включают в себя специальные символы - &, ?, %. Все это может быть и результатом работы РНР. Дело в том, что если в конце ссылки добавить ?имя=значение, это значение будет доступно под этим же именем в файле, куда указывает ссылка. Если необходимо добавить несколько имен, они могут быть разделены знаком &. Теперь мы можем сделать сайт, который будет доступен с помощью только одной странички. А всю остальную информацию эта страничка будет выводить на основании полученных по ссылке данных. Вид такой ссылки будет примерно таким: http://имя.ru/index.phtml?link=1. Единица в конце ссылки и есть наш параметр, который будет подставляться в файле index.phtml. Например, вот так:

<html>
…начало файла …
<?php
$url = "";
if ($link == 1) { $url = "name1.phtml"; }
if ($link == 2) { $url = "name2.phtml"; }
if ($link == 3) { $url = "name3.phtml"; }
if ($link == 4) { $url = "name4.phtml"; }
if ($url == "") { $url = "error.phtml"; }
INCLUDE ($url);
?>
… конец файла …
</html>

Обратите внимание, написанный нами код учитывает ситуацию, когда посетитель по разным причинам указал неправильный параметр. В этом случае выводится заранее заготовленная страничка с сообщением об ошибке. Если же параметр соответствует какому-либо из файлов сайта, он в код файла index.phtml вкладывается и исполняется. Таким образом, начало и конец остаются одинаковыми, а изменяется только середина. И какие-либо изменения уже не кажутся такими страшными, как раньше. Ведь сделать их надо только в одном файле, а отразится это на всем сайте.

Есть и другой путь. Его суть заключается в том, что у РНР есть доступ к так называемым переменным окружения сервера. Одна из этих переменных - запрашиваемый посетителем путь относительно адреса сайта. И этот путь становится нам доступен для использования. В этом случае ссылки у нас будут такого вида: http://имя.ru/index.phtml?patch/name.phtml. Вторая часть ссылки - patch/name.phtml - будет нам доступна, если мы считаем параметр $QUERY_STRING. Например, так: $add = $QUERY_STRING. Теперь изменим наш головной файл index.phtml, чтобы все работало автоматически. А если запрашиваемый параметр не будет указан (правильно говоря - будет равен пустой строке), чтобы что-то открыть, присвоим переменной $add имя файла, который должен быть открыт как главная страничка. Пусть это будет файл main.phtml. Тогда код будет выглядеть следующим образом:

<html>
начало файла
<?php
$add = $QUERY_STRING;
if ($add == "") { $add = "main.phtml"; }
INCLUDE ($
add);
?>
… конец файла …
</html>

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

Задания.

Создать страницу с таблицей следующего вида:

Ссылка 1

Ссылка 2

Ссылка 3

Для 1-го варианта

Для 2-го варианта

Для 3-го варианта

Для 4-го варианта

Для 5-го варианта

С помощью операторов include() или (и) require() осуществить переход по ссылкам в 1-вом столбце с заменой содержимого ячейки, соответствующей Вашему варианту, во втором столбце на сообщение вида: «Вы нажали на ссылку i». Использовать передачу параметров, определяющих номер ссылки, через адресную строку.




1. это творческая работа поэтому абитуриенту необходимо показать не только знания литературных текстов но и.
2. Петербургский государственный университет Биологопочвенный факультет
3. КРИВОРІЗЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ Кафедра практичної психології м
4. прежнему подпирает ее и не похоже что ктолибо пытался проникнуть в комнату ночью
5. Лекция 4 33 Субтрактивная цветовая модель Отраженный свет описывается с помощью субтрактивной или п
6. Химические волокна
7. Бизнес-планирование деятельности предприятия
8. Проектирование узловой подстанции 220-35-10.html
9. Небо разорвалось на сотни чёрных облаков ветер взвыл над палубой и на борт уже хлынула чёрнаямутная вода
10. Самые ценные бренды мира 2006