php中有一个系统自带的计算文件大小的函数,就是filesize(),但是这个函数是以字节为单位的,但是在一些情况下,我们需要很直观的了解一个文件大小,就不仅仅需要字节B这个单位了,还需要KB,MB,GB,甚至更大TB,PB,如果碰到一个很大的文件有49957289167B
php中有一个系统自带的计算文件大小的函数,就是filesize(),但是这个函数是以字节为单位的,但是在一些情况下,我们需要很直观的了解一个文件大小,就不仅仅需要字节b这个单位了,还需要kb,mb,gb,甚至更大tb,pb,如果碰到一个很大的文件有49957289167b,大家一看这么一长串的数字后面单位是字节b,还是不知道这个文件的大小是一个什么概念,但是我们把它转换成gb为单位,就是46.53gb。
所以,需要我们自己动手写一个函数来根据文件大小,自动选择统计单位,是的文件大小很直观。
该函数最主要的是根据文件的字节数,判断应当选择的统计单位,也就是说一个文件用某一单位比如mb,那么该文件肯定小于1gb,否则当然要用gb作为单位了,而且文件要大于kb,不然的话得用更小的单位统计。该函数代码如下
技术上面应用了三层结构,AJAX框架,URL重写等基础的开发。并用了动软的代码生成器及数据访问类,加进了一些自己用到的小功能,算是整理了一些自己的操作类。系统设计上面说不出用什么模式,大体设计是后台分两级分类,设置好一级之后,再设置二级并选择栏目类型,如内容,列表,上传文件,新窗口等。这样就可以生成无限多个二级分类,也就是网站栏目。对于扩展性来说,如果有新的需求可以直接加一个栏目类型并新加功能操作
0
//size() 统计文件大小
function size($byte)
{
if($byte < 1024) {
$unit="B";
}
else if($byte < 10240) {
$byte=round_dp($byte/1024, 2);
$unit="KB";
}
else if($byte < 102400) {
$byte=round_dp($byte/1024, 2);
$unit="KB";
}
else if($byte < 1048576) {
$byte=round_dp($byte/1024, 2);
$unit="KB";
}
else if ($byte < 10485760) {
$byte=round_dp($byte/1048576, 2);
$unit="MB";
}
else if ($byte < 104857600) {
$byte=round_dp($byte/1048576,2);
$unit="MB";
}
else if ($byte < 1073741824) {
$byte=round_dp($byte/1048576, 2);
$unit="MB";
}
else {
$byte=round_dp($byte/1073741824, 2);
$unit="GB";
}
$byte .= $unit;
return $byte;
}
function round_dp($num , $dp)
{
$sh = pow(10 , $dp);
return (round($num*$sh)/$sh);
}
还有一个辅助函数 round_up(),该函数用来取舍小数点位数的,四舍五入。
这样我们就能很好额统计任何一个文件的大小了,首先通过系统自带的filesize()函数获得文件的字节数,再用上面的函数换算成适当的单位就可以了,例如:
一个迈克尔杰克逊的演唱会文件,喜欢的可以到这里下载:
http://ed2ku.com/file/283525/
(比较大,40多GB),首先获得他的字节数是49957289167B,然后用size()函数,获得该文件大小为46.53GB,当然可以根据需要设定取舍小数点位数。
参考:http://www.jishutie.net/dev/php/16939.html
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号