で引数として相対パスを使用すると、パフォーマンス上の利点はありますfile_get_contents()
か?
file_get_contents("../../mypage.php");
v/s
file_get_contents("http://.../mypage.php");
file_get_contents()
社内での取り扱いは?
で引数として相対パスを使用すると、パフォーマンス上の利点はありますfile_get_contents()
か?
file_get_contents("../../mypage.php");
v/s
file_get_contents("http://.../mypage.php");
file_get_contents()
社内での取り扱いは?
「リモート」ファイルがローカル サーバー上にある場合でも、ローカル ファイルとリモート ファイルを使用すると、明らかに顕著なパフォーマンスの違いが生じる可能性があります。
などのローカル/相対ファイルfile_get_contents("../../mypage.php");
を使用すると、ネットワーク トラフィックを使用する必要なく、サーバーに直接読み込まれます。file_get_contents("http://localhost/mypage.php");
やなどのリモート ロードの場合file_get_contents("http://example.org/mypage.php");
、リモート ホストへの接続が確立されます (「ローカル」であっても)。さらに、ローカル読み取りでは、関数はファイルの内容を正確に返します。リモート読み取りは、戻る前にリモートホストがコンテンツをレンダリングすることになります (PHP の場合)。
デフォルトでは、ローカル/相対ファイルのパフォーマンスはリモート ファイルよりも高速です。接続速度が遅いネットワークからリモート ファイルをロードしようとすると、最大の顕著なパフォーマンス上の利点が見られます。
の内部実装は、 とfor のループを書き、 で閉じるのとfile_get_contents()
似ています。次に、ファイルで見つかったすべてのコンテンツの文字列を返します。基本的に、より使いやすい「ファイルから読み取る」インターフェイスを提供します。fopen()
fread()
fclose()
メソッドの詳細については、php.net/manual/en/function.file-get-contents.phpでマニュアルを参照してください。
パフォーマンス上の利点がある場合は、php エンジンに依存しません。パスは、クエリを実行する Web サーバーによって処理されます。
ただし、この場合、ローカル fs からファイルを取得するため、最初のケースではパフォーマンス上の利点があり、2 番目のケースでは、応答を取得するためにネットワーク スタック全体 (http/tcp/ip) を通過する必要があります。 . また、最初のケースでは php ソースが返され、2 番目のケースでは、php エンジンによって処理された Web ページが返されます。
より明確な例:
file_get_contents('../../somefile.ext');
と
file_get_contents('/home/user/somefile.ext');
同じように速くなります。