近日在更新某个插件时,需要用到一个读取指定文件夹内所有文件并检查其创建时间的问题。首先第一反应想到的...
近日在更新某个插件时,需要用到一个读取指定文件夹内所有文件并检查其创建时间的问题。
首先第一反应想到的是遍历,但是在考虑如果文件夹下内容过多时,如果使用遍历是否会内存溢出?
因此想到了这个函数,可能并没有解决上述问题,但是这是一个值得记录的小技巧。
glob() 定义和用法
glob() 函数返回匹配指定模式的文件名或目录。
该函数返回一个包含有匹配文件 / 目录的数组。如果出错返回 false。
语法
glob(pattern,flags)
参数 | 描述 |
---|---|
pattern | 必需。规定检索模式。 |
flags | 可选。规定特殊的设定。
注释:GLOB_ERR 是 PHP 5.1 添加的。 |
另外,还可以直接将地址目录传输到变量,例如:glob('/www/*');
最后,提供一个几乎满足所有条件的获取指定目录下所有文件的函数
function GetAllFile($dir){ if(function_exists('glob')){ $arr = glob($dir.'*'); if(is_array($arr) && count($arr)>0){ foreach($arr as $v){ $filetime = filemtime($v); if((time()-$filetime)>$this->time){ @unlink($v); } } } }elseif(function_exists('scandir')){ $arr = scandir($dir); if(is_array($arr) && count($arr)>0){ foreach($arr as $v){ if($v=='.' || $v=='..') continue; $filetime = filemtime($dir.$v); if((time()-$filetime)>$this->time){ @unlink($dir.$v); } } } }else{ $handle = opendir($dir); if($handle){ while (false !== ($file = readdir($handle))) { if($file != "." && $file != ".."){ if(is_file($dir.$file)){ $filetime = filemtime($dir.$file); print_r($filetime); } } } closedir($handle); } } }