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 相关文章推荐
在线短消息收发的程序,不用数据库
Oct 09 PHP
PHP 数据结构 算法 三元组 Triplet
Jul 02 PHP
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
Jun 17 PHP
PHP UTF8中文字符截断函数代码
Sep 11 PHP
一个漂亮的php验证码类(分享)
Aug 06 PHP
php生成动态验证码gif图片
Oct 19 PHP
thinkPHP中多维数组的遍历方法
Jan 09 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
Nov 10 PHP
PHP使用Redis替代文件存储Session的方法
Feb 15 PHP
详解PHP中的外观模式facade pattern
Feb 05 PHP
php array 转json及java 转换 json数据格式操作示例
Nov 13 PHP
PHP设计模式之命令模式示例详解
Dec 20 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下关于Cannot use a scalar value as an array的解决办法
2010/08/08 PHP
CI框架源码阅读,系统常量文件constants.php的配置
2013/02/28 PHP
使用composer 安装 laravel框架的方法图文详解
2019/08/02 PHP
JavaScript 组件之旅(一)分析和设计
2009/10/28 Javascript
js setattribute批量设置css样式
2009/11/26 Javascript
javascript oop开发滑动(slide)菜单控件
2010/08/25 Javascript
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
jquery中EasyUI使用技巧小结
2015/02/10 Javascript
JS防止网页被嵌入iframe框架的方法分析
2016/09/13 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
2016/10/26 Javascript
常用的几个JQuery代码片段
2017/03/13 Javascript
Angular使用$http.jsonp发送跨站请求的方法
2017/03/16 Javascript
清空元素html("") innerHTML="" 与 empty()的区别和应用(推荐)
2017/08/14 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
2017/08/23 jQuery
微信小程序picker组件下拉框选择input输入框的实例
2017/09/20 Javascript
Javascript操作select控件代码实例
2020/02/14 Javascript
[11:01]2014DOTA2西雅图邀请赛 冷冷带你探秘威斯汀
2014/07/08 DOTA
[10:34]DOTA2上海特级锦标赛全纪录
2016/03/25 DOTA
[01:48:04]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第一场 2月7日
2021/03/11 DOTA
Python判断操作系统类型代码分享
2014/11/22 Python
详解python列表生成式和列表生成式器区别
2019/03/27 Python
python基于json文件实现的gearman任务自动重启代码实例
2019/08/13 Python
python 字符串常用函数详解
2019/09/11 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
2019/12/25 Python
python 实现一个图形界面的汇率计算器
2020/11/09 Python
巴西食品补充剂在线零售商:Músculos na Web
2017/08/07 全球购物
探索欧洲最好的品牌:Bombinate
2019/06/14 全球购物
经理秘书岗位职责
2013/11/14 职场文书
个人课题方案
2014/05/08 职场文书
2014年民政局关于保密工作整改措施
2014/09/19 职场文书
高中优秀作文(范文)
2019/08/15 职场文书
新学期新寄语,献给新生们!
2019/11/15 职场文书
详解CSS故障艺术
2021/05/25 HTML / CSS
用Python爬取英雄联盟的皮肤详细示例
2021/12/06 Python
golang三种设计模式之简单工厂、方法工厂和抽象工厂
2022/04/10 Golang
mybatis-plus模糊查询指定字段
2022/04/28 Java/Android