Включение файлов PHP
Серверное включение (SSI) используется для создания функций, заголовков, подвалов или элементов, которые можно повторно использовать на нескольких страницах.
Операторы include (или require) получают все существующие тексты/код/теги из указанного файла и копируют их в файл, использующий оператор include.
Включение файлов полезно, если вам нужно ссылаться на один и тот же PHP, HTML или текст на нескольких страницах сайта.
Операторы include и require в PHP
С помощью операторов include или require можно вставить содержимое PHP-файла в другой PHP-файл (до его выполнения на сервере).
Операторы include и require идентичны, за исключением обработки ошибок:
- require генерирует критические ошибки (E_COMPILE_ERROR) и останавливает скрипт
- include генерирует только предупреждения (E_WARNING), и скрипт продолжает выполняться
Таким образом, если вы хотите продолжить выполнение и вывести результат пользователю, даже если файл включения отсутствует, используйте include. В противном случае, в рамках, CMS или сложных приложениях на PHP всегда используйте require для включения ключевых файлов в поток выполнения. Это помогает повысить безопасность и целостность приложения, в случае случайной потери ключевых файлов.
Включение файлов экономит много работы. Это означает, что вы можете создать стандартные файлы заголовка, подвала или меню для всех страниц. Затем, при необходимости обновить заголовок, вам нужно только обновить этот файл включения.
Грамматика
include 'filename';
или
require 'filename';
Пример использования include в PHP
Пример 1
Предположим, что у нас есть стандартный файл подвала с именем "footer.php", как это:
<?php echo "<p>Copyright © 2006-" . date("Y") . " codew3c.com</p>"; ?>
Если нужно включить этот файл подвал в одну страницу, используйте оператор include:
<html> <body> <h1>Добро пожаловать на нашу домашнюю страницу!</h1> <p>Текст абзаца.</p> <p>Текст абзаца.</p> <?php include 'footer.php';?> </body> </html>
Пример 2
Предположим, что у нас есть стандартный файл меню с именем "menu.php":
<?php echo '<a href="/index.asp">Главная страница</a> - <a href="/html/index.asp">Уроки HTML</a> - <a href="/css/index.asp">Уроки CSS</a> - <a href="/js/index.asp">Уроки JavaScript</a> - <a href="/php/index.asp">Уроки PHP</a>'; ?>
Все страницы сайта используют этот файл меню. Конкретный подход таков (мы используем элемент <div>, чтобы в будущем можно было легко устанавливать стили через CSS):
<html> <body> <div class="menu"> <?php include 'menu.php';?> </div> <h1>Добро пожаловать на мою домашнюю страницу!</h1> <p>Немного текста.</p> <p>Немного больше текста.</p> </body> </html>
Пример 3
Предположим, что у нас есть файл с именем "vars.php", в котором определены некоторые переменные:
<?php $color='Серебристый'; $car='Бenz'; ?>
Затем, если мы сослаться на этот файл "vars.php", мы можем использовать эти переменные в файле вызова:
<html> <body> <h1>Добро пожаловать на мою домашнюю страницу!</h1> <?php include 'vars.php'; echo "У меня есть" . $color . $car . "."; ?> </body> </html>
PHP include vs. require
Предложение require также используется для включения файлов в PHP-код.
Однако, у include и require есть значительная разница: если файл указан предложением include, и PHP не может найти его, скрипт продолжит выполняться:
Пример
<html> <body> <h1>Добро пожаловать на мою домашнюю страницу!</h1> <?php include 'noFileExists.php'; echo "У меня есть $color $car."; ?> </body> </html>
Если мы завершим этот пример с помощью предложения require, предложение echo не продолжит выполняться, так как после серьезной ошибки, возвращенной предложением require, выполнение скрипта будет остановлено:
Пример
<html> <body> <h1>Добро пожаловать на мою домашнюю страницу!</h1> <?php require 'noFileExists.php'; echo "У меня есть $color $car."; ?> </body> </html>
Комментарий:
Используйте require в этом случае: когда файл запрашивается приложением.
Используйте include в этом случае: когда файл не является необходимым, и приложение должно продолжать работать, если файл не найден.