近日在更新某个插件时,需要用到一个读取指定文件夹内所有文件并检查其创建时间的问题。首先第一反应想到的...
近日在更新某个插件时,需要用到一个读取指定文件夹内所有文件并检查其创建时间的问题。
首先第一反应想到的是遍历,但是在考虑如果文件夹下内容过多时,如果使用遍历是否会内存溢出?
因此想到了这个函数,可能并没有解决上述问题,但是这是一个值得记录的小技巧。
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);
}
}
}
漠漠睡