Мне нужно включить один файл php в другой. Однако файл PHP, который должен быть включен, находится в отдельном каталоге. Вот как он настроен:
folder1 / global-functions.php folder1 / folder2 / functions.php
Мне нужно включить 'global-functions.php' в 'functions.php'
Я пытался:
<?php include("../global-functions.php"); ?>
Но это не сработает. Он возвращает сообщение об ошибке
Предупреждение: include (../ global-functions.php) [function.include]: не удалось открыть поток: нет такого файла или каталога в /home/user/public_html/wp-content/themes/folder1/folder2/custom_functions.php в строке 2
Предупреждение: include () [function.include]: Не удалось открыть '../global-functions.php' для включения (include_path = '.: / Usr / lib / php: / usr / local / lib / php') в / home / user / public_html / wp-content / themes / folder1 / folder2 / custom_functions.php в строке 2
Попробуйте включить файл с абсолютным путем: что-то вроде этого:
<?php include ($_SERVER['DOCUMENT_ROOT']."/folder1/global-functions.php");?>
вы включаете функции functions.php в себя, меняете functions.php на global-functions.php и просто из любопытства, почему у вас разные файлы для функций? Почему бы не сделать классы и объекты и сделать вашу жизнь проще?
Ваш исходный код включает сбой, потому что … относительный путь в вашем include относится к текущему каталогу, который в вашем случае не является «папкой1 / папкой2 /». Текущий каталог, вероятно, будет страницей, с которой вы обслуживаете свой контент.
Вам нужно либо использовать абсолютный путь (с помощью $_SERVER['DOCUMENT_ROOT']
как в ответе @ Coomie), либо изменить свой include_path, чтобы включить расположение ваших включенных файлов (но тогда вы не должны использовать относительный путь, но вам все равно не понадобится).