PHP哪个函数将目录读入数组

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循环遍历每个文件名,依次打印它们。

后端开发标签