2016-04-25 11 views
0

私はrootにスクリプトを持っており、私はfile_get_contents()で開こうとしています。file_get_contents()がプロトコルなしでファイルシステムを開くことができないのはなぜですか?

これは動作します:

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

しかし、これは動作しません:

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

間違っているのですか?プロトコルを書かずにファイルシステムのスクリプトにアクセスするにはどうすればいいですか?


注:それ以外のプロトコルパスの先頭に__DIR__を使用することは有用ではありません。 __DIR__が有効ではありません。このように同じものですので:

C:\xampp\htdocs\folder ... 
+2

_しかし、これはうまくいかないのですか? paramsを取得する '?param = sth'はファイルシステムプロトコルではなくHTTPの一部です。 – AbraCadaver

+0

ここに行きます:http://stackoverflow.com/questions/2445276/how-to-post-data-in-php-using-file-get-contents/2445332#2445332 – Red

+0

@AbraCadaverああ...そうですプロトコルなしで動作しませんか?そして私はそう思います。そのパラメータを削除すると、このエラーは*ストリームを開けませんでした。* – stack

答えて

3

何のプロトコルがありません場合は、ローカルパス名として引数を扱います。 ?はWindowsのパス名に特別な意味を持っていないので、名前がscript.php?param=sthのファイルを探していて見つからない。

また、ローカルファイルにアクセスするときは、単に内容を読み込みます。スクリプトは実行されません。スクリプトのソースコードを取得するだけです。スクリプトを実行するには、Webサーバーを経由する必要があります。

+1

通常のファイルとしてアクセスするときではなく、Webサーバーからアクセスするときにのみ実行されます。 – Barmar

+0

Webサーバは、ファイルの内容を返すのではなく、実行する必要があるスクリプトとして '.php'ファイルを認識するように設定されています。 – Barmar

+0

質問なし回答ありませんhttp://stackoverflow.com/questions/36903392/why-file-get-contents-doesnt-work-without-protocol – stack

関連する問題