近日在更新某个插件时,需要用到一个读取指定文件夹内所有文件并检查其创建时间的问题。首先第一反应想到的是遍历,但是在考虑如果文件夹下内容过多时,如果使用遍历是否会内存溢出?因此想到了这个函数,可能并没有解决上述问题,但是这是一个值得记录的小技巧。glob() 定义和用法glob() 函数返回匹配指定模式的文件名或目录。如果出错返回 false。语法glob参数描述pattern必需。规定特殊的设定。GLOB_MARK - 在每个返回的项目中加一个斜线GLOB_NOSORT - 按照文件在目录中出现的原始顺序返回(不排序)GLOB_NOCHECK - 如果没有文件匹配则返回用于搜索的模式GLOB_NOESCAPE - 反斜线不转义元字符GLOB_BRACE - 扩充 {a,b,c} 来匹配 'a','b' 或 'c'GLOB_ONLYDIR - 仅返回与模式匹配的目录项GLOB_ERR - 停止并读取错误信息,默认的情况下忽略所有错误注释:GLOB_ERR 是 PHP 5.1 添加的。另外,还可以直接将地址目录传输到变量,例如:glob;
近日在更新某个插件时,需要用到一个读取指定文件夹内所有文件并检查其创建时间的问题。
首先第一反应想到的是遍历,但是在考虑如果文件夹下内容过多时,如果使用遍历是否会内存溢出?
因此想到了这个函数,可能并没有解决上述问题,但是这是一个值得记录的小技巧。
glob() 定义和用法
glob() 函数返回匹配指定模式的文件名或目录。
该函数返回一个包含有匹配文件 / 目录的数组。如果出错返回 false。
语法glob(pattern,flags)参数描述
pattern必需。规定检索模式。
flags可选。规定特殊的设定。GLOB_MARK - 在每个返回的项目中加一个斜线
GLOB_NOSORT - 按照文件在目录中出现的原始顺序返回(不排序)
GLOB_NOCHECK - 如果没有文件匹配则返回用于搜索的模式
GLOB_NOESCAPE - 反斜线不转义元字符
GLOB_BRACE - 扩充 {a,b,c} 来匹配 'a','b' 或 'c'
GLOB_ONLYDIR - 仅返回与模式匹配的目录项
GLOB_ERR - 停止并读取错误信息(比如说不可读的目录),默认的情况下忽略所有错误
注释: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);
}
}
}
已收藏 | 0