PHP实现格式化文件数据大小显示的方法

 这篇文章主要介绍了PHP实现格式化文件数据大小显示的方法,通过一个自定义函数实现针对文件大小的精确格式化,具有一定的参考借鉴价值,需要的朋友可以参考下

 
 

本文实例讲述了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程序设计有所帮助。

时间: 2024-09-17 03:27:59

PHP实现格式化文件数据大小显示的方法的相关文章

android从资源文件中读取文件流并显示的方法_Android

本文实例讲述了android从资源文件中读取文件流并显示的方法.分享给大家供大家参考.具体如下: 在android中,假如有的文本文件,比如TXT放在raw下,要直接读取出来,放到屏幕中显示,可以这样: private void doRaw(){ InputStream is = this.getResources().openRawResource(R.raw.ziliao); try{ doRead(is); }catch(IOException e){ e.printStackTrace(

利用COM组件IPicture读取jpg、gif、bmp图片文件数据和显示图片

1.读取图片数据 函数原型:bool LoadImage(const char *pName, unsigned char *pBitData); 函数功能,读取pName指向的图片文件的位图数据 bool LoadImage(const char *pName, unsigned char *pBitData) {     HDC     hdcTemp; // DC用来保存位图     HBITMAP     hbmpTemp; // 保存临时位图     IPicture    *pPic

JQuery读取XML文件数据并显示的实现代码_jquery

准备工作 在开始之前我们需要做如下准备工作: 1.创建一个名为DEMO.html空白html文件:(推荐使用Editplus创建) 2.熟悉JQuery框架的基本语法:(不熟悉没关系,后面我会注释得很详细) 3.创建一个名为data.xml的XML文件用来存储数据,XML的结构下面会涉及到,你也可以下载我打包好的文件查看: 4.一个loading.gif图片,这个图片用于在将XML读取出来的等待时间里面显示在空白html文档中 正式开始 Step 1:首先让我们看看这个data.xml的简单结构

total commander按文件夹大小显示

综合了网上的贴子,操作如下: ALT+SHIFT+ENTER 在详细列表状态下显示当前所有目录的大小 设置->选项->显示->文件夹排序方式由原来的"按名称"改为"和文件一样"就ok了! 上效果图:

解决Win7下EXE文件图标不法显示的方法

方法一,将下面的命令保存为批处理文件, 例如:icoRestore.bat  代码如下 复制代码 taskkill /im explorer.exe /f cd /d %userprofile%\appdata\local del iconcache.db /a start explorer.exe exit   双击运行它,图标就会自动恢复了 注意: 运行期间会造成桌面消失,不用担心,很快就会恢复了--- 方法二,1.进HKEY_LOCAL_MACHINE\Software\CLASSES\e

不删文字轻松减小Word文件的大小

不删文字轻松减小Word文件的大小,其实方法很简单,首先利用Word生成的文档,每页在20KB左右,在用记事本生成文档,相同的内容只有1KB左右,能让Word也减减肥吗?其实我们可以采用一些行之有效的方法来减小Word文档的文件大小. 1.取消快速保存当文件打开时,使用快速保存比使用完全保存需要更多的空间.可以在"工具→选项"命令中选择"保存"选项卡,取消"允许快速保存"复选框即可. 2.文件另存Word在保存DOC文件时,只把后来修改的信息存入

php 将文件里面的数据大小限制为1M,超过1M则显示最近1M的数据

问题描述 php 将文件里面的数据大小限制为1M,超过1M则显示最近1M的数据 php file_put_contents生成一个文件,将文件里面的数据大小限制为1M,超过1M则显示最近1M的数据 解决方案 获取文件长度,如果超过1M,从文件长度-1M处读取

Outlook 删除或存档邮件后,为什么数据文件仍然大小不变?

Outlook 删除或存档邮件后,为什么数据文件仍然大小不变. 原因分析: 原来,存档时依然会保留原来的文件结构,需要进行压缩才能释放这部分空间.而压缩则通常在计算机空闲且 Outlook 仍在运行时才在后台自动运行.所以您无法立竿见影看到数据文件变小. 解决方案: 您可以对数据文件进行手动压缩,立即释放空间. Outlook 2010 情况下: 打开"文件>信息",按一下"账户设置"按钮,选择"账户设置". 图一 切换到"数据文

txt文件-vb.net 从txt中提取数据,显示在数据中

问题描述 vb.net 从txt中提取数据,显示在数据中 10C txt文件:界面上数据库表格:还望大家多帮忙,用oleDB.access. 解决方案 传一个你的txt文件到网盘(百度.163都可以),我帮你写 解决方案二: Imports System.IOPublic Class Form1 Private Sub Button1_Click(sender As Object e As EventArgs) Handles Button1.Click Dim ofd As New OpenF