PHP中可以使用glob()函数来读取目录中的所有文件名,并返回一个包含字符串的数组。glob()函数的语法如下:
array glob ( string $pattern [, int $flags = 0 ] )
其中,$pattern是用于匹配的模式,$flags是可选参数,用于设置匹配模式的标志。
1. 匹配模式
$pattern参数是用于指定匹配模式的字符串,支持下列通配符:
- *:代表匹配任意数量的非特定字符。
- ?:代表匹配单个非特定字符。
- []:代表匹配方括号内的范围。
例如,可以使用以下两个模式将目录中所有.php和.html文件的文件名读入数组:
// 将所有.php文件的文件名读入数组
$php_files = glob("path/to/files/*.php");
// 将所有.php和.html文件的文件名读入数组
$files = glob("path/to/files/*.{php,html}", GLOB_BRACE);
2. 标志
$flags参数是一个可选的整数类型参数,用于确定glob()函数的行为。常用的标志有:
- GLOB_MARK:在每个返回的目录名后面加上一个斜杠。
- GLOB_BRACE:将匹配模式中的大括号扩展为可选的字符串集合。
- GLOB_ONLYDIR:只返回目录名。
- GLOB_NOSORT:不对结果进行排序。
- GLOB_ERR:不允许中断错误信息。
例如,可以使用以下代码读取所有目录,并在目录名后面加上一个斜杠:
// 将所有子目录的目录名读入数组
$dirs = glob("path/to/dirs/*", GLOB_ONLYDIR | GLOB_MARK);
3. 实例
下面是一个示例,它读取指定目录中的所有文件名并打印它们:
$dir = "path/to/files/";
$files = glob($dir . "*");
foreach ($files as $filename) {
echo $filename . "\n";
}
上述代码将读取指定目录中的所有文件名,并使用foreach循环遍历每个文件名,依次打印它们。