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简单命令代码集锦
Sep 24 PHP
php expects parameter 1 to be resource, array given 错误
Mar 23 PHP
php检测图片木马多进制编程实践
Apr 11 PHP
使用PHP静态变量当缓存的方法
Nov 13 PHP
php无限遍历目录示例
Feb 21 PHP
php 批量添加多行文本框textarea一行一个
Jun 03 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
May 13 PHP
开启PHP Static 关键字之旅模式
Nov 13 PHP
PHP函数nl2br()与自定义函数nl2p()换行用法分析
Apr 02 PHP
php生成带logo二维码方法小结
Apr 08 PHP
YII中Ueditor富文本编辑器文件和图片上传的配置图文教程
Mar 15 PHP
php创建类并调用的实例方法
Sep 25 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基于表单密码验证与HTTP验证用法实例
2015/01/06 PHP
PHP中4种常用的抓取网络数据方法
2015/06/04 PHP
Yii2实现UploadedFile上传文件示例
2017/02/15 PHP
PHP工厂模式、单例模式与注册树模式实例详解
2019/06/03 PHP
javascript分页代码(当前页码居中)
2012/09/20 Javascript
jQuery 计算iframe 窗口大小的方法
2014/05/13 Javascript
学习JavaScript设计模式(多态)
2015/11/25 Javascript
JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法
2016/08/19 Javascript
bootstrap模态框垂直居中效果
2016/12/03 Javascript
浅谈如何使用 webpack 优化资源
2017/10/20 Javascript
手把手15分钟搭一个企业级脚手架
2019/09/16 Javascript
如何基于原生javaScript生成带图片的二维码
2019/11/21 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
使用webpack和rollup打包组件库的方法
2021/02/25 Javascript
Python3实现生成随机密码的方法
2014/08/23 Python
python将MongoDB里的ObjectId转换为时间戳的方法
2015/03/13 Python
Python实现在某个数组中查找一个值的算法示例
2018/06/27 Python
在python中使用with打开多个文件的方法
2019/01/07 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
2019/06/03 Python
python SocketServer源码深入解读
2019/09/17 Python
python 通过视频url获取视频的宽高方式
2019/12/10 Python
python中round函数如何使用
2020/06/19 Python
重构Python代码的六个实例
2020/11/25 Python
Html5移动端网页端适配(js+rem)
2021/02/03 HTML / CSS
Perfume’s Club意大利官网:欧洲美妆电商
2019/05/03 全球购物
深圳-东方伟业笔试部分
2015/02/11 面试题
白酒市场营销方案
2014/02/25 职场文书
六查六看剖析材料
2014/10/06 职场文书
交通事故和解协议书
2015/01/27 职场文书
2015年高三班主任工作总结
2015/05/21 职场文书
摘录式读书笔记
2015/07/01 职场文书
Golang Gob编码(gob包的使用详解)
2021/05/07 Golang
golang生成vcf通讯录格式文件详情
2022/03/25 Golang
《地。-关于地球的运动-》单行本第七集上市,小说家朝井辽献上期待又害怕的推荐文
2022/03/31 日漫
唤醒紫霞仙子,携手再游三界!大话手游X《大话西游》电影合作专属剧情任务
2022/04/03 其他游戏
uniapp开发打包多端应用完整方法指南
2022/12/24 Javascript