Почему file_get_contents() не может открыть файловую систему без протокола?
У меня есть script в root, и я пытаюсь открыть его file_get_contents()
.
Это работает:
file_get_contents('http://localhost/folder1/folder2/script.php?param=sth');
Но это не работает:
file_get_contents('../folder1/folder2/script.php?param=sth');
Что случилось? Как я могу получить доступ к script файловой системе без записи протокола?
Примечание. Использование __DIR__
в начале этого не-протокола не является полезным. Поскольку __DIR__
является тем же, что и недопустимым:
C:\xampp\htdocs\folder ...
Ответы
Ответ 1
Если нет протокола, он рассматривает аргумент как локальный путь. ?
не имеет особого значения в путях Windows, поэтому он ищет файл с именем script.php?param=sth
и не может его найти.
Кроме того, при доступе к локальному файлу он просто считывает содержимое. Скрипты не выполняются, вы просто получите исходный код script. Если вы хотите выполнить script, вам нужно пройти через веб-сервер.