Требование файла инициализации во всех каталогах в PHP

1

Таким образом, у меня есть файл инициализации с именем "init.php" в каталоге с именем "core". Внутри этого файла инициализации я "обязал" все другие необходимые файлы компонентов в каталоге под названием "classes", и поэтому init.php имеет несколько строк "require_once". Каждый раз, когда я создаю файл в корневом каталоге (например, создавая "index.php"), я должен включить этот файл, например "include core/init.php". Все прошло хорошо, пока я не попытался включить этот файл инициализации в файл, созданный в другом каталоге. Например, в каталоге под названием "levels/index.php". Я всегда получаю ошибку "включить" каждый раз, когда я включаю этот файл инициализации в каталог, отличный от корневого каталога.

Вот как выглядит мой файл init.php:

//load all class files automatically
spl_autoload_register(function($class) {
    require_once 'classes/' . $class . '.php';
});

//include functions
require_once 'functions/sanitize.php';
require_once 'functions/functions.php;

Теперь мой файл index.php, расположенный в корневом каталоге, выглядит следующим образом:

include 'core/init.php';

Ошибок не было, однако другой файл PHP, например (source.php) внутри каталога под названием "уровни", вызвал ошибки, говорящие

Предупреждение: require_once (functions/sanitize.php): не удалось открыть поток

Вот как выглядит файл source.php:

include '../../core/init.php';

Я надеюсь, что там будет решение этой проблемы. У меня будут проблемы с сохранением всех моих файлов, расположенных только в корневом каталоге. Иногда я хотел бы включить файл инициализации в файл внутри других каталогов. Заранее спасибо.

Теги:
directory
init

1 ответ

0

Вы должны использовать абсолютный путь. Сначала определите путь, только exmaple: define('ROOT_PATH', 'localshot/') а затем require_once ROOT_PATH. 'core/init.php' файл, например require_once ROOT_PATH. 'core/init.php' require_once ROOT_PATH. 'core/init.php'

Ещё вопросы

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