php glob 指定目录,php glob()函数实现目录文件遍历与寻找与模式匹配的文件路径...

采用PHP函数glob实现寻找与模式匹配的文件路径,主要讨论glob()函数的作用和用法,利用glob函数读取目录比其它的要快N倍,因为glob函数是内置函数处理起来自然要快。

一,函数原型

array glob ( string pattern [, int flags] )

注意:glob()函数获取的是一个数组,其返回一个包含有匹配文件/目录的数组。如果出错返回FALSE

二,版本兼容

PHP 4 >= 4.3.0, PHP 5

三,函数的基础用法与实例

1,匹配目录下.txt后缀的文件

foreach (glob("*.txt") as $filename) {

echo $filename;

}

?>

2,实现兼容大小写匹配

$pattern = sql_case("*.pdf");

var_dump(glob($pattern));

?>

类似如下

foreach (array_merge(glob("*.pdf"),glob("*.PDF")) as $filename) {

echo "$filename n";

}

?>

3,获取目录下的所有子目录

function listdirs($dir) {

static $alldirs = array();

$dirs = glob($dir . '/*', GLOB_ONLYDIR);

if (count($dirs) > 0) {

foreach ($dirs as $d) $alldirs[] = $d;

}

foreach ($dirs as $dir) listdirs($dir);

return $alldirs;

}

?>

4,匹配所有文件

$files = glob('{,.}*', GLOB_BRACE);

?>

四,注意事项

1,不能作用于远程文件,被检查的文件必须通过服务器的文件系统访问。

2,使用 glob("[myfolder]/*.txt")将不能匹配,解决方法为 glob("[myfolder]/*.txt"),注意[]字符应用。

3,其次是第二个参数flags有效标记说明

(1)GLOB_MARK - 在每个返回的项目中加一个斜线

(2)GLOB_NOSORT - 按照文件在目录中出现的原始顺序返回(不排序)

(3)GLOB_NOCHECK - 如果没有文件匹配则返回用于搜索的模式

(4)GLOB_NOESCAPE - 反斜线不转义元字符

(5)GLOB_BRACE - 扩充 {a,b,c} 来匹配 'a','b' 或 'c'

(6)GLOB_ONLYDIR - 仅返回与模式匹配的目录项 注意: 在 PHP 4.3.3 版本之前 GLOB_ONLYDIR 在 Windows 或者其它不使用 GNU C 库的系统上不可用。

(7)GLOB_ERR - 停止并读取错误信息(比如说不可读的目录),默认的情况下忽略所有错误 注意: GLOB_ERR 是 PHP 5.1 添加的。

glob()函数的典型应用是读取数据表文件,如获取某个目录下的.sql后缀文件,这种在单元测试中非常实用,可实现读取sql文件重建数据库等,具体请参与PHP手册。

其它参考:

例子 1

print_r(glob("*.txt"));

?>

输出类似:

Array

(

[0] => target.txt

[1] => source.txt

[2] => test.txt

[3] => test2.txt

)

例子 2

print_r(glob("*.*"));

?>

输出类似:

Array

(

[0] => contacts.csv

[1] => default.php

[2] => target.txt

[3] => source.txt

[4] => tem1.tmp

[5] => test.htm

[6] => test.ini

[7] => test.php

[8] => test.txt

[9] => test2.txt

)

用glob()函数返回目录下的子文件以及子目录

glob() 函数返回匹配指定模式的文件名或目录 相对于readdir()和opendir()来说,使用glob()函数会方便很多 代码1: <?php function getfilename ...

使用php glob函数查找文件,遍历文件目录&lpar;转&rpar;

函数说明:array glob ( string $pattern [, int $flags ] )功能:寻找与模式匹配的文件路径,返回包含匹配文件(目录)的数组(注:被检查的文件必须是服务器系统的 ...

PHP常用文件函数和目录函数整理

一.常用文件函数库 1.basename(); -- 返回路径中的文件名部分. string basename ( string $path [, string $suffix ] ) //给出一个包 ...

Python 中当前位置以及目录文件遍历操作

Python 中当前位置以及目录文件遍历操作 当前位置 print(os.path.dirname(__file__)) 其中 dirname 会选择目录(文件夹),"__file__&qu ...

c&plus;&plus; 常用的遍历,删除,分割等等文件处理函数代码实现

原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9622851.html 删除文件目录函数: void myDeleteDirectory(CSt ...

PHP目录文件遍历

python---filecmp 实现文件,目录,遍历子目录的差异对比功能。

python---filecmp ilecmp可以实现文件,目录,遍历子目录的差异对比功能. 自带filecmp模块,无需安装. 常用方法说明 filecmp提供3个操作方法,cmp(单文件对比),c ...

Android加载SD卡目录,文件夹遍历,图片设置,设置文件对应打开方式等

此案例主要说的是Android使用GridView加载SD卡下所有目录,文件夹多层遍历,文件图标修改,设置文件对应打开方式等功能. 如图: 代码: public class GridViewFile ...

WEB安全第二篇--用文件搞定服务器:任意文件上传、文件包含与任意目录文件遍历

零.前言 最近做专心web安全有一段时间了,但是目测后面的活会有些复杂,涉及到更多的中间件.底层安全.漏洞研究与安全建设等越来越复杂的东东,所以在这里想写一个系列关于web安全基础以及一些讨巧的pay ...

随机推荐

Js 数据容量单位转换&lpar;kb&comma;mb&comma;gb&comma;tb&rpar;

function bytesToSize(bytes) { if (bytes === 0) return '0 B'; var k = 1000, // or 1024 sizes = ['B', ...

nginx上传文件

立"的Python运行环境的呢? 原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令sour ...

Java—集合框架 List的 indexOf&lpar;&rpar;、lastIndexOf&lpar;&rpar;

集合中某个元素出现的位置—List的indexOf(),lastIndexOf() indexOf(Object obj)方法的实现机制是从序列(List)的第0个元素开始依次循环,并且调用每个元素的 ...

Telerik UI for ASP&period;NET Core概要

介绍:不介绍了,刚开始研究. 下载:CSDN或者51cto上都有最新的开发版 安装:默认的安装目录是C:\Program Files (x86)\Progress\Telerik UI for ASP ...

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值