PHP实现格式化文件数据大小显示的方法


Posted in PHP onJanuary 03, 2015

本文实例讲述了PHP实现格式化文件数据大小显示的方法。分享给大家供大家参考。具体分析如下:

有时候我们需要在网页上显示某个文件的大小,或者是其它数据的大小数字。

这个数字往往从跨度很大,如果以B为单位的话可能是个位,如果1G则长达1073741824的数字,这个时候我们就需要根据大小来格式化,比如小于1K则以B为单位显示,小于1M则以KB为单位显示,小于1G则以MB为单位显示,以此类推...

格式化函数参考如下:

//格式化size显示

function formatSize($b,$times=0){

    if($b>1024){

        $temp=$b/1024;

        return formatSize($temp,$times+1);

    }else{

        $unit='B';

        switch($times){

            case '0':$unit='B';break;

            case '1':$unit='KB';break;

            case '2':$unit='MB';break;

            case '3':$unit='GB';break;

            case '4':$unit='TB';break;

            case '5':$unit='PB';break;

            case '6':$unit='EB';break;

            case '7':$unit='ZB';break;

            default: $unit='单位未知';

        }

        return sprintf('%.2f',$b).$unit;

    }

}

调用:

echo formatSize('20667564');

结果是:

19.71MB

说明:

其中参数$b是以B为单位的数字,$times是用来标识这个函数递归了多少次的。

其中不常用的单位TB、PB、EB、ZB请参考下面的备注(来源于网络):

1bit(这个比特表示一个二进制数字)
1Byte(这个单词音译过来也叫“比特”但是表示一个十六进制的数字)
1B=1Byte=8bit
1 kB = 1024 B (kB - kilobyte) 千
1 MB = 1024 kB (MB - megabyte) 兆
1 GB = 1024 MB (GB - gigabyte) 吉
1 TB = 1024 GB (TB - terabyte) 太
1 PB = 1024 TB (PB - petabyte) 拍
1 EB = 1024 PB (EB - eksabyte) 艾
1 ZB = 1024 EB (ZB - zettabyte) 皆
1 YB = 1024 ZB (YB - yottabyte) 佑
1 BB = 1024 YB (BB - brontobyte)
yotta, 尧[它], Y. 10^21,
zetta, 泽[它], Z. 10^18,
exa, 艾[可萨], E. 10^15,
peta, 拍[它], P. 10^12,
tera, 太[拉], T. 10^9,
giga, 吉[咖], G. 10^6,
mega, 兆,M. 10^3

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
动态生成gif格式的图像要注意?
Oct 09 PHP
php下通过伪造http头破解防盗链的代码
Jul 03 PHP
php 面试碰到过的问题 在此做下记录
Jun 09 PHP
php array的学习笔记
May 10 PHP
Zend的MVC机制使用分析(二)
May 02 PHP
php xml常用函数的集合(比较详细)
Jun 06 PHP
Parse正式发布开源PHP SDK
Aug 11 PHP
php中数字、字符与对象判断函数用法实例
Nov 26 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
Apr 14 PHP
php设置页面超时时间解决方法
Sep 22 PHP
thinkPHP删除前弹出确认框的简单实现方法
May 16 PHP
PHP中number_format()函数的用法讲解
Apr 08 PHP
php自定义加密与解密程序实例
Dec 31 #PHP
推荐一本PHP程序猿都应该拜读的书
Dec 31 #PHP
推荐10个提供免费PHP脚本下载的网站
Dec 31 #PHP
php使用google地图应用实例
Dec 31 #PHP
php将文本文件转换csv输出的方法
Dec 31 #PHP
19个Android常用工具类汇总
Dec 30 #PHP
php+ajax实现文章自动保存的方法
Dec 30 #PHP
You might like
深入php数据采集的详解
2013/06/02 PHP
php 修改、增加xml结点属性的实现代码
2013/10/22 PHP
PHP基于工厂模式实现的计算器实例
2015/07/16 PHP
详谈php静态方法及普通方法的区别
2016/10/04 PHP
PHP实现常用排序算法的方法
2020/02/05 PHP
js生成的验证码的实现与技术分析
2014/09/17 Javascript
Jquery ajax 同步阻塞引起的UI线程阻塞问题
2015/11/17 Javascript
详解Javascript模板引擎mustache.js
2016/01/20 Javascript
jQuery Mobile 和 Kendo UI 的比较
2016/05/05 Javascript
JS原型对象的创建方法详解
2016/06/16 Javascript
vue分类筛选filter方法简单实例
2017/03/30 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
详解使用VueJS开发项目中的兼容问题
2018/08/02 Javascript
vue-for循环嵌套操作示例
2019/01/28 Javascript
通过npm或yarn自动生成vue组件的方法示例
2019/02/12 Javascript
Node.js使用MongoDB的ObjectId作为查询条件的方法
2019/09/10 Javascript
小程序实现日历左右滑动效果
2019/10/21 Javascript
vue-cli3 取消eslint校验代码的解决办法
2020/01/16 Javascript
webpack中的模式(mode)使用详解
2020/02/20 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
2020/11/04 Javascript
Pandas:DataFrame对象的基础操作方法
2018/06/07 Python
对numpy中向量式三目运算符详解
2018/10/31 Python
python实现宿舍管理系统
2019/11/22 Python
如何通过Django使用本地css/js文件
2020/01/20 Python
Python unittest装饰器实现原理及代码
2020/09/08 Python
Python 按比例获取样本数据或执行任务的实现代码
2020/12/03 Python
Python tkinter实现日期选择器
2021/02/22 Python
医学生自荐信
2013/12/03 职场文书
通信工程专业毕业生推荐信
2013/12/25 职场文书
小学新学期教师寄语
2014/01/18 职场文书
电子工程专业毕业生求职信
2014/03/14 职场文书
青年文明号口号
2014/06/17 职场文书
护士工作失误检讨书
2014/09/14 职场文书
行政处罚决定书
2015/06/24 职场文书
Python实现的扫码工具居然这么好用!
2021/06/07 Python
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript