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 相关文章推荐
php对大文件进行读取操作的实现代码
Jan 23 PHP
浅析php面向对象public private protected 访问修饰符
Jun 30 PHP
php的hash算法介绍
Feb 13 PHP
CI(CodeIgniter)框架配置
Jun 10 PHP
PHP base64编码后解码乱码的解决办法
Jun 19 PHP
PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
Sep 24 PHP
php基于curl扩展制作跨平台的restfule 接口
May 11 PHP
详解php的socket通信
Aug 11 PHP
简介PHP的Yii框架中缓存的一些高级用法
Mar 29 PHP
ThinkPHP表单令牌错误的相关解决方法分析
May 20 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
Aug 17 PHP
Laravel5.1 框架响应基本用法实例分析
Jan 04 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
mysq GBKl乱码
2006/11/28 PHP
PHP操作MongoDB GridFS 存储文件的详解
2013/06/20 PHP
php验证码的制作思路和实现方法
2015/11/12 PHP
yii去掉必填项中星号的方法
2015/12/28 PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
2016/05/23 PHP
详解PHP编码转换函数应用技巧
2016/10/22 PHP
php实现数组纵向转横向并过滤重复值的方法分析
2017/05/29 PHP
在Laravel 中实现是否关注的示例
2019/10/22 PHP
List the Codec Files on a Computer
2007/06/11 Javascript
javascript preload&lazy load
2010/05/13 Javascript
kmock javascript 单元测试代码
2011/02/06 Javascript
jQuery $.get 的妙用 访问本地文本文件
2012/07/12 Javascript
关于JS判断图片是否加载完成且获取图片宽度的方法
2013/04/09 Javascript
jquery mobile事件多次绑定示例代码
2013/09/13 Javascript
JS中的this变量的使用介绍
2013/10/21 Javascript
JS动态修改iframe高度和宽度的方法
2015/04/01 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
2016/06/20 Javascript
JS采用绝对定位实现回到顶部效果完整实例
2016/06/20 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
2016/08/02 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
2016/09/08 Javascript
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
JS 使用 window对象的print方法实现分页打印功能
2018/05/16 Javascript
vue router导航守卫(router.beforeEach())的使用详解
2019/04/19 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
2019/10/30 Javascript
Python实现查询某个目录下修改时间最新的文件示例
2018/08/29 Python
Python xlwings插入Excel图片的实现方法
2021/02/26 Python
意大利值得信赖的在线超级药房:PillolaStore
2020/02/05 全球购物
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
2012/03/14 面试题
CSS实现fullpage.js全屏滚动效果的示例代码
2021/03/24 HTML / CSS
好的自荐信包括什么内容
2013/11/07 职场文书
有兼职工作经历的简历自我评价
2014/03/07 职场文书
教师应聘自荐信范文
2014/03/14 职场文书
寒假家长评语大全
2014/04/16 职场文书
分家协议书
2014/04/21 职场文书
2015年国庆节慰问信
2015/03/23 职场文书
vue中data改变后让视图同步更新的方法
2021/03/29 Vue.js