確定遠端檔案大小
在某些情況下,無需下載即可取得遠端檔案的檔案大小,這可能是一種有用的優化。
解決方案
如中所述使用 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中文網其他相關文章!