PHP включает в себя внутри include (другой каталог)
Структура текущего проекта, над которым я работаю, выглядит примерно так:
- root/index.php
- root/includes/php/first.php
- root/includes/php/functions.php
Итак index.php включает в себя first.php :
<?php include_once("includes/php/first.php"); ?>
Обычно тогда мой first.php вызывал бы такие функции, как:
<?php include_once("includes/php/functions.php"); ?>
Предполагая, что родственник все равно будет со страницы индекса, однако при переходе на новый сервер это не сработало. Я попытался сделать относительный путь от first.php :
include_once("functions.php");
И это, кажется, работает сейчас.
Какой обычно правильный способ сделать это? Я хочу развернуть этот проект, чтобы почти каждый мог его установить.
2 answers
Включения относятся к файлу, выполняющему включение. Если вы действительно хотите убедиться и избежать какой-либо двусмысленности, вы можете сделать это:
include dirname(__FILE__) . "/functions.php";
Я всегда использую:
include ($_SERVER['DOCUMENT_ROOT']."/include/php/functions.php");
Таким образом, вы всегда знаете, где находитесь (исходите из корня), и ваш код можно копировать с места на место.