Изучаем PHP 7.№11.Подключение файлов. Include и Require.

Изучаем PHP 7.№11.Подключение файлов. Include и Require.
В PHP есть замечательное свойство — подключение файлов, это может быть сторонняя библиотека или просто часть скрипта или верстки. Например, в отдельный файл можно вынести все функции, чтобы упростить чтение кода.
Начнем пожалуй с команд include и include_once. В чем же разница. Дело в том, что если вы подключите файл с помощью include несколько раз, то может возникнуть ошибка, в зависимости от содержимого подключаемого файла. И чтобы избежать повторного подключения используют include_once. В этом случае повторное подключение файла будет игнорироваться.

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

Вот сам сам макет:

<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head>
    <title>Наш тестовый сайт</title>
</head>
<body>

<h1>Наш тестовый сайт</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>

<p>Футер</p>

</body>
</html>

Создадим 5 файлов: index.php, header.php, content.php, footer.php и functions.php.

Разделим нашу верстку на файлы, копируя и вставляя.

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

<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head>
    <title>Наш тестовый сайт</title>
</head>
<body>

Содержимое content.php:

<h1>Наш тестовый сайт</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>

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

<p>Футер</p>

</body>
</html>

Как видите, мы просто взяли куски из шаблона и повставляли их в файлы php.

Но теперь нужно скомпоновать их. Для этого открываем файл index.php и подключаем в нем все наши файлы с кусками верстки и пока еще пустой файл с функциями:

<?php 
include_once('functions.php');
include('header.php');
include('content.php');
include('footer.php');
 ?>

Если вы запустите сайт, а именно файл index.php, то увидите, что вся верстка на месте.

Теперь напишем несколько функций в functions.php:

<?php 
//Функция с содержимым сайта
function content(){
  $cont = [
  'sitename' => 'Название сайта',

  'title'    => 'Наш тестовый сайт',

  'content'  => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
  tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
  quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
  consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
  cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
  proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',

  'footer'   => '2016г -  Все права защищены'
  ];

  return $cont;
}

//присваиваем переменной массив данных
$cont = content();

 ?>

Теперь вносим правки в наш код. Header.php:

<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head>
  <title><?=$cont['sitename'];?></title>
</head>
<body>

content.php:

<h1><?=$cont['title'];?></h1>
<p><?=$cont['content'];?></p>

footer.php:

<p><?=$cont['footer'];?></p>

</body>
</html>

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

Теперь поговорим о require и require_once. Чем же эта функция отличается от include? Все очень просто. Если include не находит подключаемый файл, то он просто выводит ошибку и продолжает работу скрипта, require же напрочь останавливает его работу. Вот и все.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.