Почему 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, вам нужно пройти через веб-сервер.