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数组函数序列之array_flip() 将数组键名与值对调
Nov 07 PHP
利用PHP生成静态HTML文档的原理
Oct 29 PHP
VIM中设置php自动缩进为4个空格的方法详解
Jun 14 PHP
教你如何解密 “ PHP 神盾解密工具 ”
Jun 20 PHP
php中file_get_contents与curl性能比较分析
Nov 08 PHP
Symfony学习十分钟入门经典教程
Feb 03 PHP
php英文单词统计器
Jun 23 PHP
PHP按一定比例压缩图片的方法
Oct 12 PHP
PHP中md5()函数的用法讲解
Mar 30 PHP
PHP学习记录之常用的魔术常量详解
Dec 12 PHP
PHP开发api接口安全验证操作实例详解
Mar 26 PHP
PHP 99乘法表的几种实现代码
Oct 13 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中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
2010/12/19 PHP
php中在PDO中使用事务(Transaction)
2011/05/14 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
2014/08/16 PHP
PHP学习笔记(二):变量详解
2015/04/17 PHP
Zend Framework实现多服务器共享SESSION数据的方法
2016/03/22 PHP
JS读取cookies信息(记录用户名)
2012/01/10 Javascript
document.addEventListener使用介绍
2014/03/07 Javascript
深入理解JavaScript系列(31):设计模式之代理模式详解
2015/03/03 Javascript
JavaScript中的关联数组问题
2015/03/04 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
2016/01/08 Javascript
JavaScript字符集编码与解码详谈
2017/02/02 Javascript
分享一道关于闭包、bind和this的面试题
2017/02/20 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
nodejs实现超简单生成二维码的方法
2018/03/17 NodeJs
详解.vue文件解析的实现
2018/06/11 Javascript
vue 左滑删除功能的示例代码
2019/01/28 Javascript
vue实现购物车小案例
2019/09/27 Javascript
vscode 配置vue+vetur+eslint+prettier自动格式化功能
2020/03/23 Javascript
vue中echarts图表大小适应窗口大小且不需要刷新案例
2020/07/19 Javascript
Python 随机生成中文验证码的实例代码
2013/03/20 Python
python实现定制交互式命令行的方法
2014/07/03 Python
Python写的创建文件夹自定义函数mkdir()
2014/08/25 Python
Linux下使用python自动修改本机网关代码分享
2015/05/21 Python
解决Tensorflow使用pip安装后没有model目录的问题
2018/06/13 Python
Python3之字节串bytes与字节数组bytearray的使用详解
2019/08/27 Python
Python多线程threading join和守护线程setDeamon原理详解
2020/03/18 Python
基于Python词云分析政府工作报告关键词
2020/06/02 Python
高性能装备提升营地:Kammok
2019/02/27 全球购物
春节活动策划方案
2014/01/24 职场文书
高中生学期学习自我评价
2014/02/24 职场文书
大学生村官个人对照检查材料(群众路线)
2014/09/26 职场文书
医生见习报告范文
2014/11/03 职场文书
法学专业求职信范文
2015/03/19 职场文书
导游词之淮安明祖陵
2019/11/25 职场文书
Vue项目打包、合并及压缩优化网页响应速度
2021/07/07 Vue.js
修改Nginx配置返回指定content-type的方法
2022/09/23 Servers