图片和脚本托管在同一个帐户(一个网站)上,但我们只知道图片的网址。
$image = "http://example.com/images/full-1091.jpg"
我们如何获得此文件的大小?
的伪代码:
{ do something with $image and get $image_size }
echo $image_size;
我希望将$image_size
格式化为人类可读的文件大小,例如“156,8 Kbytes”或“20,1 Mbytes”。
答案 0 :(得分:26)
使用filesize
这样的功能:
echo filesize($filename) . ' bytes';
您还可以使用此功能格式化单位大小:
function format_size($size) {
$sizes = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");
if ($size == 0) { return('n/a'); } else {
return (round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $sizes[$i]); }
}
答案 1 :(得分:3)
托管在同一帐户(一个网站)上的图片和脚本。
然后不要使用URL:使用直接文件路径和filesize()
。
答案 2 :(得分:3)
请注意:
缓存 filesize()函数的结果! 使用 clearstatcache()清除缓存...
来源:http://www.w3schools.com/php/func_filesystem_filesize.asp
答案 3 :(得分:0)
echo filesize($_SERVER['DOCUMENT_ROOT']."/images/full-1091.jpg");
请注意,http://site.com/images/full-1091.jpg
不是文件
格式化输出(“156,8 Kbytes”或“20,1 Mbytes”)尝试帮助自己并使用搜索。这个问题已经有很多答案了。
答案 4 :(得分:-4)
<?php
$contents=file_get_contents("http://site.com/images/full-1091.jpg");
// var_dump($contents);
// $fp =fopen("1.jpeg","w");
file_put_contents("1.jpeg",$contents);
$size= filesize("1.jpeg");
echo $size."in Bytes";
?>
检查一下它是否适合您