RUS | ANG | |

StepkinBlog.ru

Пока я творю, я живу!
Блог посвящен: HTML, CSS, PHP, Wordpress, Bootstrap

Главная » Основы PHP » Подключение файлов php через Include или Require. Основы PHP с нуля. Урок №17

21.01.2018


00:24


6931


4


Подключение файлов php через Include или Require. Основы PHP с нуля. Урок №17

Подключение файлов php через Include или Require. Основы PHP с нуля. Урок №17

Всем привет!
Продолжаем изучать основы PHP с нуля!
В этом уроке я расскажу вам, как подключить файл в php.
Зачем нужно подключать файл в php?

Минутку внимания, сейчас все узнаете.
Помните наш предыдущий урок №16, где я рассказывал о функции php?
Так вот, вы можете создать файл, например «function.php» и вписать туда все функции, которые вам нужно будет использовать для сайта. Останется только подключить файл «function.php» на  странице сайта и все. Это удобно, а также нет на главной странице сайта кучу лишнего кода.

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

Но можно всего этого избежать, если создать отдельно файл, например, «menu.php» и подключить его к вашему сайту там, где должно быть меню. И после это, если вы сделаете исправление только в одном файле «menu.php», замена произойдет на остальных 100 страницах сайта автоматически.  Таким способом вы можете подключить шапку сайта, футер и т.д. Удобно, не правда ли?
Я думаю, в конце этой статьи я покажу на примере, как это организовать.
Итак, чтобы подключить внешние файлы php, существуют две основные конструкции включений: require и include.

Конструкция включений include

Конструкция include позволяет включать файлы в код PHP скрипта во время выполнения сценария.

Синтаксис конструкции include:

<? include "имя_файла"; ?>

Если в папке:

<? include "имя_папки/имя_файла"; ?>

Пример:

Создайте файл «function.php» вот таким кодом:

<?php
function Sreturn($numberA,$numberB) {
$sum = $numberA * $numberB;
return $sum;
}
?>

Теперь в файле «index.php» попробуем подключить файл «function.php» (строка №2):

<?php
include 'function.php';
echo Sreturn(5,2); // результат 10
?>

Результат:

10

Внимание: бывают такие случаи, что вы можете забыть и попытаетесь подключить файл «function.php» еще раз (строка№2, №3):

<?php
include 'function.php';
include 'function.php';
echo Sreturn(5,2); // результат 10
?>

В итоге может возникнуть фатальная ошибка или может вывестись еще раз содержимое файла. В моем случае будет ошибка:

Fatal error: Cannot redeclare Sreturn() (previously declared in O:\home\localhost\www\php\function.php:2) in O:\home\localhost\www\php\function.php on line 5

Если саму функцию убрать, а прописать текст (файл «function.php»):

Подключение файлов php через Include или Require. Основы PHP с нуля. Урок №17

Ну и, естественно, в файле «index.php» тоже уберите вывод функции:

Подключение файлов php через Include или Require. Основы PHP с нуля. Урок №17

то результат просто повторится.

Привет! Привет! 

Чтобы не допустить таких ошибок  и исключить повторное подключение файла, вместо инструкции «include» надо применять инструкцию «include_once».

конструкции «include_once»

Синтаксис конструкции «include_once»:

<? include_once "имя_файла"; ?>

Пример (строка №2, №3):

<?php
include_once 'function.php';
include_once 'function.php';
echo Sreturn(5,2); // результат 10
?>

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

Конструкция включений require

Конструкция require позволяет включать файлы в сценарий PHP до исполнения сценария PHP.

Синтаксис конструкции «require»:

<? require "имя_файла"; ?>

Если в папке:

<? require "имя_папки/имя_файла"; ?>

Пример:

<?php
require 'function.php';
echo Sreturn(5,2); // результат 10
?>

Если у нас в коде встретятся несколько инструкций require, которые подключают один и тот же файл, то интерпретатор выдаст ошибку. Чтобы избежать данной ситуации, надо использовать инструкцию «require_once»:

конструкции «require_once»

<? require_once "имя_файла"; ?>

Пример:

<?php
require_once "function.php";
require_once "function.php";
echo Sreturn(5,2); // результат 10
?>

Внимания: если подключить несуществующий файл через «include», «include_once», «require» или «require_once», то в результате будет ошибка:

Warning: include_once(function1.php) [function.include-once]: failed to open stream: No such file or directory in O:\home\localhost\www\php\index.php on line 2

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

Разобьем этот сайт на такие файлы:

Подключение файлов php через Include или Require. Основы PHP с нуля. Урок №17

Итак, создайте папку «Experiment» на локальном сервере (или на хостинге). Там будет новый сайт для эксперимента.

В папке «Experiment» создайте еще одну папку под названием «include». Как вы поняли, в папке «include» будут храниться файлы для подключения («menu.php», «heder.php» и «footer.php»).

Теперь зайдите в папку «include» и создайте там файл «menu.php» вот с таким кодом:

<tr bgcolor="#795548">
<td colspan="2">
<a href="index.php">ГЛАВНАЯ</a>&#160;&#160;&#160;&#160;
<a href="obo-mne.php">ОБО МНЕ</a>&#160;&#160;&#160;&#160;
<a href="uslugi.php">УСЛУГИ</a>&#160;&#160;&#160;&#160;
<a href="obratnaja-svjaz.php">ОБРАТНАЯ СВЯЗЬ</a>
</td>
</tr>

Создайте еще один файл под названием «heder.php» и вставьте вот такой код:

<tr bgcolor="#fff">
<td width="400"><center><img src="image/logo.png"></center></td>
<td>
<center>
<h1><font size="+5">StepkinBLOG.RU</font></h1>
<p><font size="+2" color="#666">обучение основам HTML</font></p>
</center>
</td>
</tr>

Создайте еще один файл под названием «footer.php» и вставьте вот такой код:

<tr bgcolor="#795548">
<td colspan="2"><font color="#fff"> StepkinBLOG.RU &#169; 2016</font></td>
</tr>

Теперь выходим из папки «include» и создаем главный файл «index.ph
(внимание: не «index.html», а именно «index.php» ) вот с таким кодом:

<html>
<head>
<title> Практика по основам HTML на StepkinBlog.ru</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body background="image/fon.jpg" link="#00FF00" alink="#FFFF00" vlink="#EEE9E9">
<center>
<table border="0" cellpadding="20" cellspacing="0" width="1200">
<!-- menu
<tr bgcolor="#795548">
<td colspan="2">
<a href="index.html">ГЛАВНАЯ</a>&#160;&#160;&#160;&#160;
<a href="obo-mne.html">ОБО МНЕ</a>&#160;&#160;&#160;&#160;
<a href="uslugi.html">УСЛУГИ</a>&#160;&#160;&#160;&#160;
<a href="obratnaja-svjaz.html">ОБРАТНАЯ СВЯЗЬ</a>
</td>
</tr>
-->
<? include_once 'include/menu.php'; ?>

<!-- heder
<tr bgcolor="#fff">
<td width="400"><center><img src="image/logo.png"></center></td>
<td>
<center>
<h1><font size="+5">StepkinBLOG.RU</font></h1>
<p><font size="+2" color="#666">обучение основам HTML</font></p>
</center>
</td>
</tr>
-->
<? include_once 'include/heder.php'; ?>

<tr bgcolor="#fff">
<td colspan="2">
<hr>
<h2>ГЛАВНАЯ</h2>
<p>Здесь будет текст для главной страницы</p>
</td>
</tr>
<!-- footer
<tr bgcolor="#795548">
<td colspan="2"><font color="#fff"> StepkinBLOG.RU &#169; 2016</font></td>
</tr>
-->
<? include_once 'include/footer.php'; ?>

</table>
</center>
</body>
</html>

Подключение файлов я сделал в строках №19, №32, №38.
Обратите внимания, что я просто закомментировал участки кода, которые выводятся через «include_once», просто для понимания, а так комментарии можно убрать, код сократится и файл станет легче:

<html>
<head>
<title> Практика по основам HTML на StepkinBlog.ru</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body background="image/fon.jpg" link="#00FF00" alink="#FFFF00" vlink="#EEE9E9">
<center>
<table border="0" cellpadding="20" cellspacing="0" width="1200">
<!-- menu-->
<? include_once 'include/menu.php'; ?>

<!-- heder -->
<? include_once 'include/heder.php'; ?>

<tr bgcolor="#fff">
<td colspan="2">
<hr>
<h2>ГЛАВНАЯ</h2>
<p>Здесь будет текст для главной страницы</p>
</td>
</tr>
<!-- footer -->
<? include_once 'include/footer.php'; ?>

</table>
</center>
</body>
</html>

Теперь дублируйте этот код  для остальных файлов  «obo-mne.php», «uslugi.php», «obratnaja-svjaz.php», только меняя текст заголовка и самого контента.

Вот и все, смотрите и проверяйте.
Для полного счастья (чтобы отображались картинки) не забудьте создать папку «image» с картинками.

Подписывайтесь на обновление блога, чтобы не пропустить вкусных уроков по основам PHP.



Случайные записи:

  1. Плавающие блоки в CSS. Основы CSS для начинающих. Урок №15
  2. Вкладки. Основы bootstrap 3 для начинающих. Урок №21
  3. Нам 4 годика! С Днем Рождения StepkinBlog.ru!!!
  4. Цикл While (Do- While). Основы PHP с нуля. Урок №11
  5. Нам 2 годика! С Днем Рождения StepkinBlog.ru!!!

Последние записи рубрики:

  1. Создание, проверка и удаление каталога (папки) посредством кода PHP. Основы PHP с нуля. Урок №23
  2. Работа с файлами-4. Отправка файла на сервер. Основы PHP с нуля. Урок №22
  3. Работа с файлами-3 (дополнительные функции и возможности). Основы PHP с нуля. Урок №21
  4. Работа с файлами-2 (удаление, копирование, переименование и перемещение файлов). Основы PHP с нуля. Урок №20
  5. Работа с файлами-1 (создание, открытие, отображение, запись и закрытие файлов). Основы PHP с нуля. Урок №19

4 ответа(ов) на статью: “Подключение файлов php через Include или Require. Основы PHP с нуля. Урок №17”

  1. Адам says:

    Перекопировал всё с вашего сайта notepad++ и ничего не работает. Не могу понять почему.

    Ответить

    Степка ответил(а) на комментарий:

    может то что Вы хотите проверить файл php. А он работает только на сервере. Залейте файл на хостинг или установите на домашний комп локальный сервер и проверяйте...

    Ответить

  2. Алексей says:

    У меня код работает, только если подключение записать вот так:

    Видимо, php в данном случае писать обязательно.

    Ответить

    Степка ответил(а) на комментарий:

    да, это зависит от версии php или настроек хостинга

    Ответить

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

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

Подписаться на обновления:

Подпишись на обновления моего блога через e-m@il:

@

Реклама на блоге:

Мои цели на
2019 год:

Довести количество статей до 150

Доделать этот блог

Закончить тему «Основы CSS»

Закончить тему «Основы PHP»

Начать тему «Основы JavaScript»

Добиться посещаемости 500 чел/сутки

Статистика:

Записей: 111
Страниц: 3
Рубрик: 9
Меток: 11
Комментариев: 347