PHP glob://

phpserver side programmingprogramming

简介

glob:// 流包装器在 PHP 5.3.0 及之后的所有版本中均可用。它可以查找与给定模式匹配的路径名。PHP 的文件系统函数 glob() 也遵循 libc glob() 规则,可实现类似的目的。

参数

特殊字符

  • * − 匹配零个或多个字符。
  • ? − 匹配一个字符(任意字符)。
  • [...] − 匹配一组字符中的一个字符。如果第一个字符是 !,则匹配不在该组中的任意字符。
  • \ −转义后续字符,除非使用了 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) . "
"; } ?>

使用 glob:// 流包装器

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

两个脚本均显示 test 子目录中扩展名为 .php 的文件的名称和大小


相关文章