PHP include внутри include (другой каталог)

5

Структура текущего проекта, над которым я работаю, выглядит примерно так:

  • корень /index.php
  • корень/включает/PHP/first.php
  • корень/включает/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");

И теперь это работает.

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

Теги:
directory
include

2 ответа

11
Лучший ответ

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

include dirname(__FILE__) . "/functions.php";
  • 0
    Огромное спасибо! Не уверен, почему это сработало раньше, но это решение решит будущие проблемы
  • 0
    +1 - я собирался предложить использовать элемент $_SERVER['SCRIPT_FILENAME'] чтобы сделать то же самое, но это намного лучше.
Показать ещё 2 комментария
0

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню