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语法速查表
Dec 06 PHP
自动分页的不完整解决方案
Jan 12 PHP
PHP 字符串正则替换函数preg_replace使用说明
Jul 15 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
Jun 29 PHP
php对二维数组进行排序的简单实例
Dec 19 PHP
PHP+MYSQL会员系统的开发实例教程
Aug 23 PHP
学习php设计模式 php实现原型模式(prototype)
Dec 07 PHP
全面解读PHP的Yii框架中的日志功能
Mar 17 PHP
php实现给二维数组中所有一维数组添加值的方法
Feb 04 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
Mar 24 PHP
Yii2中添加全局函数的方法分析
May 04 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
May 30 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
香妃
2021/03/03 冲泡冲煮
php curl 伪造IP来源的实例代码
2012/11/01 PHP
PHP笔记之:日期函数的使用介绍
2013/04/24 PHP
php初始化对象和析构函数的简单实例
2014/03/11 PHP
复制本贴标题和地址的js代码
2008/07/01 Javascript
基于jQuery实现表格数据的动态添加与统计的代码
2011/01/31 Javascript
js实现同一页面多个运动效果的方法
2015/04/10 Javascript
使用iojs的jsdom库实现同步系统时间
2015/04/20 Javascript
javascript中 try catch用法
2015/08/16 Javascript
15款最好的Bootstrap在线编辑器
2016/08/03 Javascript
js HTML5 Canvas绘制转盘抽奖
2020/09/13 Javascript
React实现双向绑定示例代码
2016/09/19 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
2018/04/05 Javascript
JavaScript 中的12种循环遍历方法【总结】
2018/05/31 Javascript
jQuery实现点击图标div循环放大缩小功能
2018/09/30 jQuery
react 生命周期实例分析
2020/05/18 Javascript
vue导入.md文件的步骤(markdown转HTML)
2020/12/31 Vue.js
[42:52]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python urllib模块urlopen()与urlretrieve()详解
2013/11/01 Python
python求质数的3种方法
2018/09/28 Python
Python画图实现同一结点多个柱状图的示例
2019/07/07 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
Flask框架请求钩子与request请求对象用法实例分析
2019/11/07 Python
Python 复平面绘图实例
2019/11/21 Python
python同义词替换的实现(jieba分词)
2020/01/21 Python
python plt可视化——打印特殊符号和制作图例代码
2020/04/17 Python
Python延迟绑定问题原理及解决方案
2020/08/04 Python
python实现测试工具(一)——命令行发送get请求
2020/10/19 Python
基于Django集成CAS实现流程详解
2020/11/28 Python
悬挂训练绳:TRX
2017/12/14 全球购物
美国保健品专家:Life Extension
2018/05/04 全球购物
凯普林包包西班牙官网:Kipling西班牙
2019/04/12 全球购物
工商管理专业实习生自我鉴定
2013/09/29 职场文书
Java使用jmeter进行压力测试
2021/07/09 Java/Android
游戏《东方异文石:爱亚利亚黎明》正式版发布
2022/04/03 其他游戏