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分页显示制作详细讲解
Dec 05 PHP
关于IIS php调用com组件的权限问题
Jan 11 PHP
php mysql_real_escape_string函数用法与实例教程
Sep 30 PHP
正确的PHP匹配UTF-8中文的正则表达式
May 13 PHP
php简单socket服务器客户端代码实例
May 18 PHP
PHP基于phpqrcode生成带LOGO图像的二维码实例
Jul 10 PHP
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
Dec 24 PHP
100行PHP代码实现socks5代理服务器
Apr 28 PHP
PHP下 Mongodb 连接远程数据库的实例代码
Aug 30 PHP
php探针使用原理和技巧讲解
Sep 17 PHP
laravel 解决crontab不执行的问题
Oct 22 PHP
php解析非标准json、非规范json的方式实例
Dec 10 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常用数组函数介绍
2014/07/28 PHP
PHP写日志的实现方法
2014/11/05 PHP
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
thinkPHP引入类的方法详解
2016/12/08 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
thinkPHP5框架自定义验证器实现方法分析
2018/06/11 PHP
Javascript实现计算个人所得税
2015/05/10 Javascript
搭建Bootstrap离线文档的方法
2016/12/02 Javascript
js设置文字颜色的方法示例
2016/12/30 Javascript
vue2 中如何实现动态表单增删改查实例
2017/06/09 Javascript
小发现之浅谈location.search与location.hash的问题
2017/06/23 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
2017/10/10 Javascript
layui 实现表格某一列显示图标
2019/09/19 Javascript
[02:19]DOTA2女子战队FOX视频专访:希望更多美眉一起加入
2013/10/15 DOTA
Python通过websocket与js客户端通信示例分析
2014/06/25 Python
Python脚本暴力破解栅栏密码
2015/10/19 Python
Python实现简单登录验证
2016/04/13 Python
scrapy爬虫实例分享
2017/12/28 Python
Python模块搜索路径代码详解
2018/01/29 Python
Django权限机制实现代码详解
2018/02/05 Python
用Python3创建httpServer的简单方法
2018/06/04 Python
Python多进程方式抓取基金网站内容的方法分析
2019/06/03 Python
Pycharm运行加载文本出现错误的解决方法
2019/06/27 Python
Win10系统下安装labelme及json文件批量转化方法
2019/07/30 Python
Python利用matplotlib绘制约数个数统计图示例
2019/11/26 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
2020/02/16 Python
html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
2013/01/09 HTML / CSS
澳大利亚婴儿喂养品牌:Cherub Baby
2018/11/01 全球购物
会计助理岗位职责
2014/02/17 职场文书
反邪教警示教育方案
2014/05/13 职场文书
红领巾心向党演讲稿
2014/09/10 职场文书
2015教师个人工作总结范文
2015/03/31 职场文书
《用字母表示数》教学反思
2016/02/17 职场文书
《中国机长》观后感:敬畏生命,敬畏职责
2019/11/12 职场文书
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
2021/06/13 Python
使用CSS实现音波加载效果
2023/05/07 HTML / CSS