我想开始讨论在两种情况下获取图像的文件大小。
如果我们有两种情况:
- www.example.com/test.jpg)
在第一个中,我们有到图像的直接链接,在第二个
- 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_DOWNLOAD
从Content-Length
报头本身获得数据。但是,对于异常,第二个方法是不处理的,它可能会给您一个未定义的索引,并且必须进行处理,因为有些服务器在标头中不提供Content-Length。