php查找指定目录下指定大小文件的方法


Posted in PHP onNovember 28, 2014

本文实例讲述了php查找指定目录下指定大小文件的方法。分享给大家供大家参考。具体实现方法如下:

php查找文件大小的原理是遍历目录然后再利用filesize来计算文件大小,然后我们再加一判断就可以了,下面整理了一些例子.

我们先来看遍历目录,代码如下:

function tree($directory)  

{  

 $mydir = dir($directory);  

 echo "<ul>n";  

 while($file = $mydir->read()) 

 {  

  if((is_dir("$directory/$file")) AND ($file!=".") AND ($file!=".."))  

  { 

   echo "<li><font color="#ff00cc"><b>$file</b></font></li>n";  

   tree("$directory/$file");  

  }  

  else  

  echo "<li>$file</li>n";  

 }  

 echo "</ul>n";  

 $mydir->close();  

}  

//开始运行 

 

echo "<h2>目录为粉红色</h2><br>n";  

tree("./nowamagic");

这样只是把所有目录下的文件显示了,但我们要判断大小需加上round(filesize($cpath)/1024,1)函数了,这样我们获取大小之后就可以显示文件大小了,代码如下:
<?php 

header("Content-Type:text/html;charset=gbk"); 

set_time_limit(0); 

$dirpath=dirname(__FILE__); 

//bytes 

$limitByte=1024*110; 

//这里改成你合适的查找文件最低大小,单位为字节。1024*100表示 1024*100字节,即100KB 

$arrRes=$arrTmp=array(); 

showMaxFile($dirpath,$limitByte); 

function showMaxFile($path,$limitByte){ 

global $arrRes; 

$h=opendir($path); 

if($h){ 

while (false !== ($file = readdir($h))) { 

if($file!='.' && $file!='..'){ 

$cpath=$path.'/'.$file; 

if(is_dir($cpath)){ 

showMaxFile($cpath,$limitByte); 

}else{ 

if(filesize($cpath) > $limitByte){ 

$arrRes[]=array($cpath,round(filesize($cpath)/1024,1)); 

//echo "<p>{$cpath}<br />".(filesize($cpath) / 1024)."KB</p>"; 

} 

} 

} 

} 

 

} 

closedir($h); 

} 

foreach($arrRes as $k=>$v){ 

$arrTmp[$k]=$v[1]; 

} 

arsort($arrTmp); 

foreach($arrTmp as $k=>$v){ 

echo "<p>".str_replace($dirpath,'',$arrRes[$k][0])."<br />".$arrRes[$k][1]."</p>"; 

} 

?>

最后给大家附一个字节计算函数,这个可以转换,代码如下:
//字节数转换成带单位的 

/* 原理是利用对数求出欲转换的字节数是1024的几次方。 

 * 其实就是利用对数的特性确定单位。 

*/ 

function size2mb($size,$digits=2){ //digits,要保留几位小数 

  $unit= array('','K','M','G','T','P');//单位数组,是必须1024进制依次的哦。 

  $base= 1024;//对数的基数 

  $i   = floor(log($size,$base));//字节数对1024取对数,值向下取整。 

  return round($size/pow($base,$i),$digits).' '.$unit[$i] . 'B'; 

}

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
坏狼的PHP学习教程之第1天
Jun 15 PHP
php常用Output和ptions/Info函数集介绍
Jun 19 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
Apr 23 PHP
PHP小教程之实现链表
Jun 09 PHP
ThinkPHP行为扩展Behavior应用实例详解
Jul 22 PHP
分享一个Laravel好用的Cache宏
Mar 02 PHP
PHP输出两个数字中间有多少个回文数的方法
Mar 23 PHP
PHP生成随机密码方法汇总
Aug 27 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
Apr 11 PHP
PHP pear安装配置教程
May 14 PHP
Yii2.0多文件上传实例说明
Jul 24 PHP
PHP7中I/O模型内核剖析详解
Apr 14 PHP
thinkphp四种url访问方式详解
Nov 28 #PHP
thinkphp数据查询和遍历数组实例
Nov 28 #PHP
php中fgetcsv()函数用法实例
Nov 28 #PHP
PHP获取服务器端信息的方法
Nov 28 #PHP
thinkphp模板用法和内容输出实例
Nov 28 #PHP
配置php.ini实现PHP文件上传功能
Nov 27 #PHP
php程序员应具有的7种能力小结
Nov 27 #PHP
You might like
PHP中设置一个严格30分钟过期Session面试题的4种答案
2014/07/30 PHP
thinkphp中的多表关联查询的实例详解
2017/10/12 PHP
JObj预览一个JS的框架
2008/03/13 Javascript
js事件(Event)知识整理
2012/10/11 Javascript
jquery预览图片实现鼠标放上去显示实际大小
2014/01/16 Javascript
jQuery中removeProp()方法用法实例
2015/01/05 Javascript
EasyUI中datagrid在ie下reload失败解决方案
2015/03/09 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
基于jquery ui的alert,confirm方案(支持换肤)
2015/04/03 Javascript
详解数组Array.sort()排序的方法
2020/05/09 Javascript
div中文字内容溢出常见的解决方法
2017/03/16 Javascript
微信小程序中上传图片并进行压缩的实现代码
2018/08/28 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
2020/08/06 Javascript
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
python中函数传参详解
2016/07/03 Python
详细介绍Python的鸭子类型
2016/09/12 Python
pytorch中的transforms模块实例详解
2019/12/31 Python
查看jupyter notebook每个单元格运行时间实例
2020/04/22 Python
Python爬虫设置ip代理过程解析
2020/07/20 Python
CSS3 简单又实用的5个属性
2010/03/04 HTML / CSS
意大利团购网站:Groupon意大利
2016/10/11 全球购物
来自Ocado的宠物商店:Fetch
2018/07/10 全球购物
大学四年规划书范文
2013/12/27 职场文书
优秀求职信范文分享
2014/01/26 职场文书
超市总经理岗位职责
2014/02/02 职场文书
致裁判员加油稿
2014/02/08 职场文书
工商企业管理专业自荐信范文
2014/04/12 职场文书
节约用水倡议书
2014/04/16 职场文书
实习单位鉴定评语
2014/04/26 职场文书
环卫工作汇报材料
2014/10/28 职场文书
2014年连锁店圣诞节活动方案
2014/12/09 职场文书
严以用权专题学习研讨会发言材料
2015/11/09 职场文书
Python排序算法之插入排序及其优化方案详解
2021/06/11 Python
浅谈Redis位图(Bitmap)及Redis二进制中的问题
2021/07/15 Redis
3050和2060哪个好 性能差多少 差距有多大 谁更有性价比
2022/06/17 数码科技
Java Redisson多策略注解限流
2022/09/23 Java/Android