Всем привет. Сегодня я вас научу, как подключать сторонние файлы к файлу PHP. Когда вы подключаете сторонний файл, то весь код который находился в выбранном файле будет работать и на файле к которому он был подключен. Это может быть полезно, если у вас есть необходимые скрипты, которые должны работать на нескольких страница, но вы хотите избежать повторения кода.
И так, для реализации данного процесса есть несколько функций.
Самыми главными и часто используемыми функциями являются include
и require
. На собеседованиях, часто задают вопрос о их отличиях, поэтому это важно знать.
Отличие include от require.
Если вы находили следующую информацию о их отличиях.
Отличие include
от require
отличается в том, что require
падает в Fatal error при невозможности подключения файла по любой причине. А include
только выдает Warning и спокойно продолжает работу. От этого и надо исходить при выборе между ними. Если Вы подключаете файлы, в которых идет описание важных функций/классов/любых других вещей, без которых об успешной работе не может быть и речи, то имеет смысл использовать require.
Отличие _once от простых заключается в том, что файл не будет подключен второй раз при повторной попытке. Если в подключаемом файле находятся декларации функций и/или классов, то имеет смысл подключать такой файл с помощью _once, ибо попытка переопределения любой существующей функции приводит к Fatal error’у.
То сейчас, в новых версиях PHP, работа этих функций немного изменилась.
На данный момент конструкция require
позволяет включать файлы в PHP сценарий до выполнения сценария PHP.
Конструкция include
предназначена для включения файлов в код сценария PHP во время исполнения сценария PHP.
Приставка _once проверяет чтобы данный файл подключался только один раз.
И следовательно, на текущий момент, исходить надо из необходимости подключать файл до выполнения кода php, либо же во время его исполнения.
В первом случае к примеру мы должны прописывать путь до файла без использования переменных (так как интерпретатор подключает файл тогда когда он еще не работает с переменными — до исполнения сценарий php).
Во втором же случае можно динамически формировать путь к файлу с помощью переменных.
Как подключить файл из своего проекта.
Для того чтобы вызвать файл из вашего проекта, достаточно прописать следующую конструкцию.
require ('путь_к_файлу');
Так же есть второй способ подключения файла с помощью аналогичной функции, которую мы рассматривали ранее.
require_once($_SERVER['DOCUMENT_ROOT'].'file.php');
Здесь в качестве параметров тоже указывается путь к файлу, только в данном случае код $_SERVER['DOCUMENT_ROOT']
подставляет путь до главной директории, после чего вам нужно указать оставшийся путь.
Последний способ, это с помощью функции file_get_contents()
. В этот раз мы научимся подключать файлы со сторонних сайтов. Для того чтобы работать с данной функцией мы создадим переменную, в которую запишем работу функции.
$a = file_get_contents("http://www.somedomain.com/file.php"); echo ($a);
Почему нельзя использовать include для подключения сторонних файлов
В PHP 5 функция include для удаленных файлов отключена по умолчанию, и, если ваш сервер использует другую версию PHP, но имеет безопасную установку, вы также столкнетесь с этой ошибкой.
Причина отключения PHP функции include для файлов достаточно простая — это позволит избежать межсайтовых скриптовых (XSS) атак. Это метод, с помощью которого кто-то из недоброжелателей может внедрить свой собственный вредоносный код в ваш, что, как правило, делается для проведения DoS и DDoS атак, а они в свою очередь приводят к падению сервака. Еще есть включения (заражения) в коде страницы, которые содержат и выводят на экран компьютера сообщения мол «такие-то хакеры сломали ваш сайт» вместо стандартного содержимого страницы.
Поэтому если вы собираетесь попросить хостера разрешить эту функцию для удаленных файлов, хорошенько подумайте еще разок.