I have a file that I'd like another script to access using file_get_contents
The file I'd like it to access is in the directory above it, so I'm using file_get_contents('../file.php?this=that')
However, it's returning No such file or directory
and I can't understand why. The file is there.
I'm assuming it has something to do with it being a local file rather than a remote. Any ideas or workarounds?
В этом месте нет файла.
Вы должны использовать правильный путь.
Прежде всего выполните echo getcwd ();
, чтобы узнать, какой каталог сейчас является текущим (из которого строится ваш относительный путь)
Затем дважды проверьте расположение file.php относительно этого каталога.
Проверьте регистр имени файла, он может быть чувствительным.
Могу я спросить, почему вы открываете php-файл с помощью этой функции?
Итак, ответ:
$your_var = 1;
include('../file.php');
Я пошел дальше и использовал несколько переменных $ _SERVER, объединив их вместе, чтобы получить полный URL-адрес, и использовал его в file_get_contents
:
file_get_contents ('http: / / '. $ _SERVER [' HTTP_HOST ']. Dirname ($ _ SERVER [' SCRIPT_NAME ']).' /../File.php?this=that');
Это помогло. Спасибо всем за помощь.
is getcwd () == dirname (__ FILE __)
?
Однажды я столкнулся с проблемой, когда использование относительного пути всегда приводило к ошибке на каком-то разделяемом хосте. Мы закончили тем, что использовали абсолютные пути, используя имя каталога (__ FILE __)
в качестве базового пути (установив константу в начальной загрузке и используя эту константу в качестве значения базового пути), и все работало нормально. Мы не углублялись в проблему, но, возможно, вы столкнулись с тем же самым. Я здесь просто догадываюсь.