PHP glob://

介绍

水珠://流包装可在5.3.0之后所有的PHP版本。它查找与给定模式匹配的路径名。PHP的文件系统功能glob()遵循libcglob()规则,可以达到类似的目的。

参数

特殊字符

  • *-匹配零个或多个字符。

  • ?−精确匹配一个字符(任何字符)。

  • [...]-匹配一组字符中的一个字符。如果第一个字符是!,则匹配组中未包含的任何字符。

  • \-转义以下字符,除非使用GLOB_NOESCAPE标志。

有效标志

  • GLOB_MARK-向每个返回的目录添加斜杠(在Windows上为反斜杠)

  • GLOB_NOSORT-返回出现在目录中的文件(不排序)。不使用此标志时,路径名按字母顺序排序

  • GLOB_NOCHECK-如果找不到与之匹配的文件,则返回搜索模式

  • GLOB_NOESCAPE-反斜杠不引用元字符

  • GLOB_BRACE-展开{a,b,c}以匹配'a','b'或'c'

  • GLOB_ONLYDIR-仅返回与模式匹配的目录条目

  • GLOB_ERR-停止读取错误(如不可读的目录),默认情况下会忽略错误。

例子

使用glob()方法

<?php
foreach (glob("test/*.php") as $filename) {
   echo "$filename size " . filesize($filename) . "\n";
}
?>

使用glob://流包装器

<?php
$it = new DirectoryIterator("glob://test/*.php");
foreach($it as $f) {
   echo "File name: " . $f->getFilename() . " size: " . $f->getSize() . "\n";);
}
?>

这两个脚本都在测试子目录中显示扩展名为.php的文件的名称和大小