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&&mysql)一
Oct 09 PHP
header中Content-Disposition的作用与使用方法
Jun 13 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
Oct 29 PHP
PHP关于htmlspecialchars、strip_tags、addslashes的解释
Jul 04 PHP
php实现paypal 授权登录
May 28 PHP
如何通过Linux命令行使用和运行PHP脚本
Jul 29 PHP
php验证码的制作思路和实现方法
Nov 12 PHP
Linux系统中为php添加pcntl扩展
Aug 28 PHP
关于php几种字符串连接的效率比较(详解)
Feb 22 PHP
Laravel 创建指定表 migrate的例子
Oct 09 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
Apr 04 PHP
tp5.1 框架路由操作-URL生成实例分析
May 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关联链接常用代码
2012/11/05 PHP
利用中国天气预报接口实现简单天气预报
2014/01/20 PHP
Yii实现简单分页的方法
2016/04/29 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
一个简单的JavaScript 日期计算算法
2009/09/11 Javascript
JavaScript 学习笔记(七)字符串的连接
2009/12/31 Javascript
jQuery插件原来如此简单 jQuery插件的机制及实战
2012/02/07 Javascript
jQuery实现新消息闪烁标题提示的方法
2015/03/11 Javascript
微信小程序实现签到功能
2018/10/31 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
Python中tell()方法的使用详解
2015/05/24 Python
python图像处理之镜像实现方法
2015/05/30 Python
Python3使用requests包抓取并保存网页源码的方法
2016/03/15 Python
django限制匿名用户访问及重定向的方法实例
2018/02/07 Python
python实现顺序表的简单代码
2018/09/28 Python
Django CBV类的用法详解
2019/07/26 Python
使用Python下载抖音各大V视频的思路详解
2021/02/06 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
StubHub新西兰:购买和出售你的门票
2019/04/22 全球购物
Prototype中如何为一个元素添加一个方法
2014/12/08 面试题
口腔工艺技术专业毕业生自荐信
2013/09/27 职场文书
护士自荐信
2013/10/25 职场文书
面试求职的个人自我评价
2013/11/16 职场文书
大课间活动制度
2014/01/18 职场文书
护理专业自荐信范文
2014/02/26 职场文书
解除合同协议书
2014/04/17 职场文书
经济管理专业求职信
2014/06/09 职场文书
我们的节日中秋活动方案
2014/08/19 职场文书
安全责任书范文
2014/08/25 职场文书
大学生简短的自我评价
2014/09/12 职场文书
公司收款委托书范本
2014/09/20 职场文书
反对四风问题自我剖析材料
2014/09/29 职场文书
群众路线教育实践活动整改方案(个人版)
2014/10/25 职场文书
教师工作决心书
2015/02/04 职场文书
党校团干班培训心得体会
2016/01/06 职场文书
解决pycharm下载库时出现Failed to install package的问题
2021/09/04 Python