有时候我们需要在网页上显示某个文件的大小,或者是其它数据的大小数字。
这个数字往往从跨度很大,如果以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
Android使用文件存储数据
Android上最基本的存储数据的方式即为使用文件存储数据,使用基本的Java的FileOutStream,BufferedWriter,FileInputStream和BufferedReader即 ...
Android开发手记(17) 数据存储二 文件存储数据
Android为数据存储提供了五种方式: 1.SharedPreferences 2.文件存储 3.SQLite数据库 4.ContentProvider 5.网络存储 本文主要介绍如何使用文件来存储 ...
[ Android 五种数据存储方式之二 ] —— 文件存储数据
关于文件存储,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的. 文件可用来存放大量数据,如文本.图片.音 ...
Python 7 -- 文件存储数据
上一节总结了一个基本web应用的代码,这一节主要讲用户访问的数据记录在log文件中,并显示在页面上. 这节步骤: 按以下目录建好相应的文件夹及内容 webapp|----vsearch4web.py ...
Android开发--数据存储之File文件存储
转载来自:http://blog.csdn.net/ahuier/article/details/10364757,并进行扩充 引言:Android开发中的数据存储方式 Android提供了5种方式存 ...
android开发中的5种存储数据方式
数据存储在开发中是使用最频繁的,根据不同的情况选择不同的存储数据方式对于提高开发效率很有帮助.下面笔者在主要介绍Android平台中实现数据存储的5种方式. 1.使用SharedPreferences ...
Android中数据存储(三)——SQLite数据库存储数据
当一个应用程序在Android中安装后,我们在使用应用的过程中会产生很多的数据,应用都有自己的数据,那么我们应该如何存储数据呢? 数据存储方式 Android 的数据存储有5种方式: 1. Share ...
Android学习笔记36:使用SQLite方式存储数据
在Android中一共提供了5种数据存储方式,分别为: (1)Files:通过FileInputStream和FileOutputStream对文件进行操作.具体使用方法可以参阅博文
Android提供了5种方式存储数据:
--使用SharedPreferences存储数据: --文件存储数据: --SQLite数据库存储数据: --使用ContentProvider存储数据: --网络存储数据: 一:使用SharedP ...
随机推荐
D_S 循环队列的基本操作
// main.cpp #include using namespace std; #include "Status.h" typedef in ...
configure: error: cannot find protoc, the Protocol Buffers compiler
centos 6 安装mosh 1.2 2012-05-07 17:21:41标签:centos mosh 关于mosh(引用于) 芬兰研究员Tatu Ylönen于1995年设计出最早的SSH协议, ...
常用文件的文件头(附JAVA测试类)
1. MIDI (mid),文件头:4D546864 2. JPEG (jpg),文件头:FFD8FF 3. PNG (png),文件头:89504E47 4. GIF (gif),文件头:47494 ...
一个用于上传文件的servlet
1.jsp页面操作文件:
ajaxUploadFile在IE9等IE浏览器,上传变json下载的问题解决(SpringMVC + ajaxUploadFile)
使用ajaxUploadFIle进行文件上传,在google中正常,但是IE中却变成了json文件下载.经过搜索和尝试,解决方案如下: 首先明确,该功能使用$.ajaxFileUpload而非ajax ...
【No JSON object could be decoded】问题解决
本人使用爬虫从某数据库中下载了一批数据,本地存为json格式(pgp.json)然后使用python中的json模块进行解析(json.load),一直出现下述错误 从google中查找到了同样错误的 ...
Wolsey ";强整数规划“ 建模的+Leapms实践——无产能批量问题
Wolsey "强整数规划“ 建模的+Leapms实践——无产能批量问题 [1]一书作者L. A. Wolsey对批量问题(Lot-sizing Problem)做了 ...
【EMV L2】终端风险管理(Terminal Risk Management)
终端风险管理使大额交易联机授权,并确保芯片交易能够周期性地进行联机以防止在脱机环境中也许无法察觉的风险. 虽然发卡行被强制要求在应用交互特征(AIP)中将终端风险管理位设置成1以触发终端风险管理,但终 ...
React 组件间通信介绍
React 组件间通信方式简介 React 组件间通信主要分为以下四种情况: 父组件向子组件通信 子组件向父组件通信 跨级组件之间通信 非嵌套组件间通信 下面对这四种情况分别进行介绍: 父组件向子 ...
Spring Cloud Stream消费失败后的处理策略(四):重新入队(RabbitMQ)
应用场景 之前我们已经通过一文介绍了Spring Cloud Stream默认的消息重试功能.本文将介绍Rab ...