确定远程文件大小
在某些情况下,无需下载即可获取远程文件的文件大小,这可能是一种有用的优化。
解决方案
如中所述使用 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中文网其他相关文章!