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输出Excel文件类
Feb 08 PHP
php 使用post,get的一种简洁方式
Apr 25 PHP
PHP return语句的另一个作用
Jul 30 PHP
php实现阳历阴历互转的方法
Oct 28 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
Dec 28 PHP
weiphp微信公众平台授权设置
Jan 04 PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
Apr 07 PHP
PHP中的浅复制与深复制的实例详解
Oct 26 PHP
PHP递归实现汉诺塔问题的方法示例
Nov 25 PHP
Laravel第三方包报class not found的解决方法
Oct 13 PHP
php pdo连接数据库操作示例
Nov 18 PHP
利用PHP计算有多少小于当前数字的数字方法示例
Aug 26 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+MYSQL的文章管理系统(一)
2006/10/09 PHP
php全局变量和类配合使用深刻理解
2013/06/05 PHP
用脚本调用样式的几种方法
2006/12/09 Javascript
使用jquery给input和textarea设定ie中的focus
2008/05/29 Javascript
javascript 面向对象编程基础:继承
2009/08/21 Javascript
js 页面关闭前的出现提示的实现代码
2011/05/25 Javascript
页面实时更新时间的JS实例代码
2013/12/18 Javascript
使用jquery清空、复位整个输入域
2015/04/02 Javascript
vue.js路由跳转详解
2017/08/28 Javascript
vue-router结合vuex实现用户权限控制功能
2019/11/14 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
2020/05/06 Javascript
JavaScript面试中常考的字符串操作方法大全(包含ES6)
2020/05/10 Javascript
[14:25]教你分分钟做大人:主宰(HEROS)
2014/12/08 DOTA
python分割文件的常用方法
2014/11/01 Python
在mac下查找python包存放路径site-packages的实现方法
2018/11/06 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
python3中的logging记录日志实现过程及封装成类的操作
2020/05/12 Python
浅析Python 序列化与反序列化
2020/08/05 Python
详解Python 中的 defaultdict 数据类型
2021/02/22 Python
HTML5中drawImage用法分析
2014/12/01 HTML / CSS
使用html2canvas.js实现页面截图并显示或上传的示例代码
2018/12/18 HTML / CSS
俄罗斯Sportmarket体育在线商店:用于旅游和户外活动
2019/11/12 全球购物
分布式数据库需要考虑哪些问题
2013/12/08 面试题
信息管理专业学生自荐信格式
2013/09/22 职场文书
分家协议书
2014/04/21 职场文书
大学生实习鉴定评语
2014/04/25 职场文书
骨干教师培训方案
2014/05/06 职场文书
临床医学专业求职信
2014/08/08 职场文书
一份没有按时交货失信于客户的检讨书
2014/09/19 职场文书
企业计划生育责任书
2015/05/09 职场文书
幼儿园辞职信
2015/05/13 职场文书
信用卡工作证明范本
2015/06/19 职场文书
入党宣誓大会后的感想
2015/08/10 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书
python tkinter模块的简单使用
2021/04/07 Python
JS前端可扩展的低代码UI框架Sunmao使用详解
2022/07/23 Javascript