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");

И это, кажется, работает сейчас.

Какой обычно правильный способ сделать это? Я хочу развернуть этот проект, чтобы почти каждый мог его установить.

Author: kilrizzy, 2009-12-11

2 answers

Включения относятся к файлу, выполняющему включение. Если вы действительно хотите убедиться и избежать какой-либо двусмысленности, вы можете сделать это:

include dirname(__FILE__) . "/functions.php";
 11
Author: nickf, 2009-12-11 14:41:18

Я всегда использую:

include ($_SERVER['DOCUMENT_ROOT']."/include/php/functions.php");

Таким образом, вы всегда знаете, где находитесь (исходите из корня), и ваш код можно копировать с места на место.

 0
Author: Livshin, 2015-07-21 11:58:03