文档:glob() 函数可以用来匹配指定模式的文件名或目录,并返回一个包含匹配文件/目录的数组,如果出错返回false.
语法:glob(pattern, flags),pattern匹配模式,flag参数有:
- GLOB_MARK - 在每个返回的项目中加一个斜线
- GLOB_NOSORT - 按照文件在目录中出现的原始顺序返回(不排序)
- GLOB_NOCHECK - 如果没有文件匹配则返回用于搜索的模式
- GLOB_NOESCAPE - 反斜线不转义元字符
- GLOB_BRACE - 扩充 {a,b,c} 来匹配 'a','b' 或 'c'
- GLOB_ONLYDIR - 仅返回与模式匹配的目录项
- GLOB_ERR - 停止并读取错误信息(比如说不可读的目录),默认的情况下忽略所有错误
例子:
搜索当前目录下第一层中所有目录和文件,glob("*", GLOB_MARK),返回 Array ( [0] => TPM\ [1] => ThinkPHP\ [2] => index.php [3] => tp\ )
只搜索子目录,glob("*", GLOB_ONLYDIR ),返回 Array ( [0] => TPM [1] => ThinkPHP [2] => tp )
多条件匹配,glob({c*,i*}, GLOB_BRACE ),返回
| Array |
( | |
[0] => cha.php | |
[1] => client.php | |
[2] => index.php | |
[3] => pha.php | |
[4] => server.php | |
) | |
Array | |
( | |
[0] => cha.php | |
[1] => client.php | |
[2] => index.php | |
) |
举个常见的例子,比如我们的网站下有个文件夹叫image,image下有各种类型的分类,而每一个分类下又包含两目录,origin(正常大小的),和thumb(缩略图),我们需要一段代码来读取所有分类的所有缩略图,如果不是用glob将是很麻烦的一段代码,用glob的话: glob("image/*/thumb/*"),轻松搞定。
scandir(dir,sort,context),用来返回指定路径中的文件和目录,sort:0表示升序,1表示降序。scandir函数不能使用匹配模式,只能返回自定路径下的所有文件和目录。