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图片上传类带图片显示
Nov 25 PHP
PHP中通过ADO调用Access数据库的方法测试不通过
Dec 31 PHP
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
Nov 10 PHP
PHP的autoload机制的实现解析
Sep 15 PHP
解析php addslashes()与addclashes()函数的区别和比较
Jun 24 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
Jul 01 PHP
thinkphp特殊标签用法概述
Nov 24 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
Aug 16 PHP
PHP  实现等比压缩图片尺寸和大小实例代码
Oct 08 PHP
php结合redis高并发下发帖、发微博的实现方法
Dec 15 PHP
YII2自动登录Cookie总是失效的解决方法
Jun 28 PHP
PHP对称加密算法(DES/AES)类的实现代码
Nov 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来自动调用不同服务器上的flash
2006/10/09 PHP
微信公众平台开发教程②微信端分享功能图文详解
2019/04/10 PHP
firefox事件处理之自动查找event的函数(用于onclick=foo())
2010/08/05 Javascript
利用js的Node遍历找到repeater的一个字段实例介绍
2013/04/25 Javascript
JS完整获取IE浏览器信息包括类型、版本、语言等等
2014/05/22 Javascript
浅谈js的setInterval事件
2014/12/05 Javascript
Javascript 调用 ActionScript 的简单方法
2016/09/22 Javascript
值得分享的bootstrap table实例
2016/09/22 Javascript
ajax图片上传,图片异步上传,更新实例
2016/12/30 Javascript
jQuery插件HighCharts绘制2D带有Legend的饼图效果示例【附demo源码下载】
2017/03/10 Javascript
vue 中使用 watch 出现了如下的报错的原因分析
2019/05/21 Javascript
如何使用Node.js爬取任意网页资源并输出PDF文件到本地
2019/06/17 Javascript
javascript面向对象创建对象的方式小结
2019/07/29 Javascript
layui 弹出删除确认界面的实例
2019/09/06 Javascript
Vue左滑组件slider使用详解
2020/08/21 Javascript
在centos7中分布式部署pyspider
2017/05/03 Python
numpy实现合并多维矩阵、list的扩展方法
2018/05/08 Python
在PyCharm中三步完成PyPy解释器的配置的方法
2018/10/29 Python
python实现连续图文识别
2018/12/18 Python
python实现动态创建类的方法分析
2019/06/25 Python
pytorch 自定义数据集加载方法
2019/08/18 Python
Python 实现Serial 与STM32J进行串口通讯
2019/12/18 Python
python获取响应某个字段值的3种实现方法
2020/04/30 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
python模拟点击在ios中实现的实例讲解
2020/11/26 Python
HTML5 预加载让页面得以快速呈现
2013/08/13 HTML / CSS
HTML5 Canvas入门学习教程
2016/03/17 HTML / CSS
大四自我鉴定范文
2013/10/06 职场文书
审计专业自荐信范文
2014/04/21 职场文书
优秀的个人求职信范文
2014/05/09 职场文书
国际语言毕业生求职信
2014/07/08 职场文书
推广普通话共筑中国梦演讲稿
2014/09/21 职场文书
2015年宣传工作总结
2015/04/08 职场文书
《狮子和鹿》教学反思
2016/02/16 职场文书
利用Nginx代理如何解决前端跨域问题详析
2021/04/02 Servers
Mysql数据库值的添加、修改、删除及清空操作实例
2021/06/20 MySQL