/ / Por que file_get_contents () não pode abrir um sistema de arquivos sem protocolo? - php

Por que file_get_contents () não pode abrir um sistema de arquivos sem protocolo? - php

Eu tenho um script na raiz e estou tentando abri-lo por file_get_contents().

Isso funciona:

file_get_contents("http://localhost/folder1/folder2/script.php?param=sth");

Mas isso não funciona:

file_get_contents("../folder1/folder2/script.php?param=sth");

O que há de errado? Como posso acessar um script de sistema de arquivos sem escrever protocolo?


Nota: Usando __DIR__ no início desse caminho não-protocolo não é útil. __DIR__ é o mesmo algo assim que não é válido:

C:xampphtdocsfolder ...

Respostas:

3 para resposta № 1

Se não houver nenhum protocolo, ele tratará o argumento como um nome de caminho local. ? não tem nenhum significado especial nos nomes de caminho do Windows, então ele está procurando por um arquivo cujo nome é script.php?param=sthe não pode encontrá-lo.

Além disso, ao acessar um arquivo local, ele simplesmentelê o conteúdo. Scripts não são executados, você apenas obterá o código-fonte do script. Se você quiser que um script seja executado, é necessário acessar o servidor da web.