Ответ 1
Попробуйте добавить dirname(__FILE__)
до пути, например:
require(dirname(__FILE__).'/../../dir2/file3.php');
Он должен включать файл, начинающийся с корневого каталога
У меня есть следующая структура файла:
rootDIR dir1 subdir1 file0.php file1.php dir2 file2.php file3.php file4.php
file1.php
требуется file3 и file4 из dir2 следующим образом:
require('../../dir2/file3.php')
file2.php
требует file1.php
следующим образом:
require('../dir1/subdir1/file1.php')
НО, а затем потребовать, чтобы в файле1 не удалось открыть файл3 и файл4 (возможно, из-за относительности пути)
Однако в чем причина и что я могу сделать для file2.php
, поэтому file1.php
требуется правильно file3 и file4
Попробуйте добавить dirname(__FILE__)
до пути, например:
require(dirname(__FILE__).'/../../dir2/file3.php');
Он должен включать файл, начинающийся с корневого каталога
Для относительных путей вы можете использовать __DIR__
напрямую, а не dirname(__FILE__)
(если вы используете PHP 5.3.0 и выше):
require(__DIR__.'/../../dir2/file3.php');
Не забудьте добавить дополнительную косую черту в начале пути в кавычках.
Увидеть:
Правильный совет здесь - никогда не использовать такие вещи, как "../../" относительные пути в ваших веб-приложениях. Это трудно читать и ужасно для обслуживания.
Как вы можете подтвердить. Это очень сложно понять, на что вы указываете.
Если вам нужно изменить уровень папки вашего приложения или его частей. Он полностью подвержен ошибкам и, скорее всего, сломает что-то ужасное для отладки.
Вместо этого define
несколько констант в вашем файле начальной загрузки для вашего основного пути, а затем используйте:
require(MY_DIR.'/dir2/file3.php');
Перемещение приложения оттуда так же просто, как замена констант MY_DIR в одном файле.
Вы всегда можете использовать $_SERVER['DOCUMENT_ROOT']
в качестве допустимой отправной точки, а не прибегать к относительному пути. Просто еще один вариант.
require($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');
Я думаю, что ваш cdd - dir2. Попробуйте:
require("file3.php");
require("file4.php");