获取图像文件大小的最佳方法


Best methods to get image file size

我想开始讨论在两种情况下获取图像的文件大小。

如果我们有两种情况:

  1. www.example.com/test.jpg)

在第一个中,我们有到图像的直接链接,在第二个

  1. www.example.com/getImage?id=3

在这两种情况下,我们都得到了相同的图像。

最好使用什么?

我试着使用这两种方法:$url="www.example.com/test.jpg";

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_HEADER, TRUE);
    curl_setopt($ch, CURLOPT_NOBODY, TRUE);
    $data = curl_exec($ch);
    $size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
    curl_close($ch);
    echo $size;

第二个更简单:

$length = get_headers($url,true);
print_r($length['Content-Length']);

第一次和第二次相比有什么好处?

两者相同。阅读php手册,网址:http://php.net/manual/en/function.curl-getinfo.php

CURLINFO_CONTENT_LENGTH_DOWNLOAD - content-length of download, read from Content-Length: field

因此,基本上CURLINFO_CONTENT_LENGTH_DOWNLOADContent-Length报头本身获得数据。但是,对于异常,第二个方法是不处理的,它可能会给您一个未定义的索引,并且必须进行处理,因为有些服务器在标头中不提供Content-Length。