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 相关文章推荐
dedecms中常见问题修改方法总结
Mar 21 PHP
php添加文章时生成静态HTML文章的实现代码
Feb 17 PHP
解析link_mysql的php版
Jun 30 PHP
PHP防盗链代码实例
Aug 27 PHP
PHP图片处理之图片旋转和图片翻转实例
Nov 19 PHP
PHP+MYSQL中文乱码问题
Jul 01 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
Dec 28 PHP
php中的常用魔术方法汇总
Feb 14 PHP
Yii输入正确验证码却验证失败的解决方法
Jun 06 PHP
Laravel-添加后台模板AdminLte的实现方法
Oct 08 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
Jan 26 PHP
PHP面试题 wakeup魔法 Ezpop pop序列化与反序列化
Apr 11 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中curl_setopt函数用法实例分析
2015/04/16 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
javascript算法学习(直接插入排序)
2011/04/12 Javascript
jQuery JSON实现无刷新三级联动实例探讨
2013/05/28 Javascript
js简单实现用户注册信息的校验代码
2013/11/15 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
2014/03/08 Javascript
jQuery选择器简明总结(含用法实例,一目了然)
2014/04/25 Javascript
node.js操作mongodb学习小结
2015/04/25 Javascript
TypeScript 学习笔记之基本类型
2015/06/19 Javascript
基于JS实现EOS隐藏错误提示层代码
2016/04/25 Javascript
jQuery Ajax 实例代码 ($.ajax、$.post、$.get)
2016/04/29 Javascript
ES6中参数的默认值语法介绍
2017/05/03 Javascript
利用HBuilder打包前端开发webapp为apk的方法
2017/11/13 Javascript
vux uploader 图片上传组件的安装使用方法
2018/05/15 Javascript
jQuery实现ajax回调函数带入参数的方法示例
2018/06/26 jQuery
vue.js单文件组件中非父子组件的传值实例
2018/09/13 Javascript
深入了解Vue动态组件和异步组件
2021/01/26 Vue.js
[02:46]解说DC:感谢430陪伴我们的DOTA2国际邀请赛岁月
2016/06/29 DOTA
Python实现的堆排序算法原理与用法实例分析
2017/11/22 Python
python机器学习理论与实战(一)K近邻法
2021/01/28 Python
Python的形参和实参使用方式
2019/12/24 Python
python读写文件write和flush的实现方式
2020/02/21 Python
遮罩层 + Iframe实现界面自动显示的示例代码
2020/04/26 HTML / CSS
阿里巴巴国际站:Alibaba.com
2016/07/21 全球购物
Otticanet美国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
eBay奥地利站:eBay.at
2019/07/24 全球购物
上学迟到的检讨书
2014/01/11 职场文书
服装行业创业计划书范文
2014/02/05 职场文书
2014年个人业务工作总结
2014/11/17 职场文书
2015公务员试用期工作总结
2014/12/12 职场文书
公司周年庆典致辞
2015/07/30 职场文书
推广普通话主题班会
2015/08/17 职场文书
古诗文之爱国名句(77句)
2019/09/24 职场文书
Matlab求解数组中的最大值及它所在的具体位置
2021/04/16 Python
在Python中如何使用yield
2021/06/07 Python
Python matplotlib绘制条形统计图 处理多个实验多组观测值
2022/04/21 Python