リモート ファイル サイズの決定
ダウンロードせずにリモート ファイルのファイル サイズを取得することは、特定の場合に便利な最適化になる可能性があります。
解決策
応答で述べたように、HTTP HEAD リクエストの使用は、このタスクに適したアプローチです。 HEAD リクエストは、実際の本文を取得せずに、リソースに関連付けられた HTTP ヘッダーを取得します。
実装
これを利用する PHP 関数は次のとおりです。メソッド:
function get_remote_file_size($url) { $curl = curl_init($url); curl_setopt($curl, CURLOPT_NOBODY, true); curl_setopt($curl, CURLOPT_HEADER, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); $data = curl_exec($curl); curl_close($curl); if ($data) { preg_match("/Content-Length: (\d+)/", $data, $matches); $content_length = $matches[1] ?? -1; return $content_length; } return -1; }
使用法
この関数を使用して、リモート ファイルのサイズを決定できます:
$file_size = get_remote_file_size("http://my_url/my_file.txt");
注: このメソッドは、サーバーが HEAD リクエストを受け入れ、正しい Content-Length を提供することに依存します。ヘッダー。
以上がリモート ファイルをダウンロードせずにそのサイズを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。