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
frename PHP 灵活文件命名函数 frename
Sep 09 PHP
php生成的html meta和link标记在body标签里 顶部有个空行
May 18 PHP
php数组函数序列之array_keys() - 获取数组键名
Oct 30 PHP
php 按指定元素值去除数组元素的实现方法
Nov 04 PHP
浅析php与数据库代码开发规范
Aug 08 PHP
Yii框架关联查询with用法分析
Dec 02 PHP
使用XHGui来测试PHP性能的教程
Jul 03 PHP
PHP获取不了React Native Fecth参数的解决办法
Aug 26 PHP
thinkphp jquery实现图片上传和预览效果
Jul 22 PHP
降低PHP Redis内存占用
Mar 23 PHP
PHP的微信支付接口使用方法讲解
Mar 08 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+MySql编写聊天室
2006/10/09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
2014/11/12 PHP
解决laravel(5.5)访问public报错的问题
2019/10/12 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
2019/10/17 PHP
PHP的Trait机制原理与用法分析
2019/10/18 PHP
Javascript入门学习资料收集整理篇
2008/07/06 Javascript
Javascript中的window.event.keyCode使用介绍
2011/04/26 Javascript
文本域光标操作的jQuery扩展分享
2014/03/10 Javascript
jQuery中is()方法用法实例
2015/01/06 Javascript
jQuery超赞的评分插件(8款)
2015/08/20 Javascript
JQuery中Ajax()的data参数类型实例分析
2015/12/15 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
JavaScript数据绑定实现一个简单的 MVVM 库
2016/04/08 Javascript
JavaScript常用字符串与数组扩展函数小结
2016/04/24 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
layui给下拉框、按钮状态、时间赋初始值的方法
2019/09/10 Javascript
关于layui 下拉列表的change事件详解
2019/09/20 Javascript
[37:22]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第一局
2016/02/28 DOTA
[05:46]2018完美盛典-《同梦共竞》
2018/12/17 DOTA
Python最基本的输入输出详解
2015/04/25 Python
python登录豆瓣并发帖的方法
2015/07/08 Python
Python socket网络编程TCP/IP服务器与客户端通信
2017/01/05 Python
Python  pip安装lxml出错的问题解决办法
2017/02/10 Python
python 函数中的内置函数及用法详解
2019/07/02 Python
浅谈python中频繁的print到底能浪费多长时间
2020/02/21 Python
python使用梯度下降算法实现一个多线性回归
2020/03/24 Python
python实现小程序推送页面收录脚本
2020/04/20 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
2020/04/24 Python
python 利用opencv实现图像网络传输
2020/11/12 Python
python Matplotlib基础--如何添加文本和标注
2021/01/26 Python
浏览器实现移动端高性能css3动画(开启gpu加速)
2013/12/23 HTML / CSS
澳大利亚领先的在线美容商城:Adore Beauty
2017/04/14 全球购物
世界上获奖最多的手机镜头:Olloclip
2018/03/03 全球购物
TOWER London官网:鞋子、靴子、运动鞋等
2019/07/14 全球购物
办公室班子四风问题对照检查材料
2014/10/04 职场文书