php匹配文件中的函数,PHP小技巧:glob() 函数 返回匹配指定模式的文件名或目录...

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

5a72bbd5724c96b83fe6ac92578f5edb.png

另外,还可以直接将地址目录传输到变量,例如: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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值