假设我们有一个存储在远程服务器中的图像文件(例如,让我们来看this image),我们如何确定(在PHP代码中)它的文件大小?
如果文件在服务器上,我们会使用filesize(see here),但这不适用于远程文件(see here)。
另一种方法是检查“内容长度”,但我认为它不适用于图像文件(see here)
我想要一个像here那样的解决方案(例如:
)<?php
function get_remote_size($url) { // magic
}
echo get_remote_size("http://humus101.com/wp-content/uploads/2009/11/Hummus-soup.jpg");
?>
但无需下载图像。这可能吗?
答案 0 :(得分:8)
假设您担心文件的大小(而不是图像的尺寸),您可以获取内容长度,它通常会起作用。
如果另一端的服务器没有提供标题,你将别无选择,只能获取文件,并在本地检查其大小。
<?PHP
$headers = get_headers('http://humus101.com/wp-content/uploads/2009/11/Hummus-soup.jpg');
$size = null;
foreach($headers as $h){
/** look for Content-Length, and stick it in $size **/
}
if ($size === null){ //we didn't get a Content-Length header
/** Grab file to local disk and use filesize() to set $size **/
}
echo "image is $size bytes";
答案 1 :(得分:1)
echo get_headers($ url,1)['Content-Length'];
答案 2 :(得分:0)
其他人有一个功能,基本上它作为套接字连接: http://snippets.dzone.com/posts/show/1207