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
?繁体转换的class
Oct 09 PHP
mysql中存储过程、函数的一些问题
Feb 14 PHP
PHP 开发环境配置(Zend Server安装)
Apr 28 PHP
PHP获取数组中某元素的位置及array_keys函数应用
Jan 29 PHP
ThinkPHP框架实现session跨域问题的解决方法
Jul 01 PHP
PHP依赖倒置(Dependency Injection)代码实例
Oct 11 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
Dec 02 PHP
smarty的section嵌套循环用法示例
May 28 PHP
如何修改Laravel中url()函数生成URL的根地址
Aug 11 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
Mar 11 PHP
Laravel 5+ .env环境配置文件详解
Apr 06 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
评分9.0以上的动画电影,剧情除了经典还很燃
2020/03/04 日漫
php include的妙用,实现路径加密
2008/07/29 PHP
PHP的博客ping服务代码
2012/02/04 PHP
用PHP+MySQL搭建聊天室功能实例代码
2012/08/20 PHP
分享下页面关键字抓取components.arrow.com站点代码
2014/01/30 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
2016/01/05 PHP
PHP使用数组依次替换字符串中匹配项
2016/01/08 PHP
thinkPHP5 tablib标签库自定义方法详解
2017/05/10 PHP
Laravel timestamps 设置为unix时间戳的方法
2019/10/11 PHP
jquery ajax执行后台方法
2010/03/18 Javascript
新手常遇到的一些jquery问题整理
2010/08/16 Javascript
jQuery 在光标定位的地方插入文字的插件
2012/05/10 Javascript
jquery实现按Enter键触发事件示例
2013/09/10 Javascript
常用js字符串判断方法整理
2013/10/18 Javascript
js实现将选中值累加到文本框的方法
2015/08/12 Javascript
jQuery 监控键盘一段时间没输入
2016/04/22 Javascript
分享JavaScript监听全部Ajax请求事件的方法
2016/08/28 Javascript
js通过Date对象实现倒计时动画效果
2017/10/27 Javascript
微信小程序购物车、父子组件传值及calc的注意事项总结
2018/11/14 Javascript
JS学习笔记之贪吃蛇小游戏demo实例详解
2019/05/29 Javascript
js+html实现点名系统功能
2019/11/05 Javascript
js实现简单的日历显示效果函数示例
2019/11/25 Javascript
下载糗事百科的内容_python版
2008/12/07 Python
python2.7 json 转换日期的处理的示例
2018/03/07 Python
Django 日志配置按日期滚动的方法
2019/01/31 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
详解python3类型注释annotations实用案例
2021/01/20 Python
python+selenium实现12306模拟登录的步骤
2021/01/21 Python
从一次项目重构说起CSS3自定义变量在项目的使用方法
2021/03/01 HTML / CSS
化学学院毕业生自荐信范文
2013/12/17 职场文书
电气工程师岗位职责
2015/02/12 职场文书
大学生活感想
2015/08/10 职场文书
高一语文教学反思
2016/02/16 职场文书
zabbix agent2 监控oracle数据库的方法
2021/05/13 Oracle
微信小程序中wxs文件的一些妙用分享
2022/02/18 Javascript
Nginx利用Logrotate实现日志分割
2022/05/20 Servers