文件查找好用的函数glob,scandir

文档: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函数不能使用匹配模式,只能返回自定路径下的所有文件和目录。

你可能感兴趣的:(glob)