欢迎访问宙启技术站
智能推送

PHP函数:如何使用glob()来获取文件列表

发布时间:2023-09-15 22:03:04

在PHP中,使用glob()函数可以获取与指定模式匹配的所有文件和目录的列表。glob()函数返回一个数组,其中包含了所有匹配模式的文件和目录的路径。

glob()函数的基本语法如下:

array glob(string $pattern, int $flags = 0)

其中,参数$pattern是一个包含通配符的字符串,用于指定要匹配的文件和目录的模式。可以使用的通配符包括:

- *:匹配任意长度的任何字符。

- ?:匹配单个任意字符。

- []:匹配指定范围内的任意一个字符。

- [!]:匹配不在指定范围内的任意一个字符。

参数$flags是一个可选的整数参数,用于指定glob()函数的行为。常用的flag包括:

- GLOB_BRACE:允许使用{}括号来展开模式。

- GLOB_ONLYDIR:仅匹配目录。

- GLOB_NOSORT:不对结果进行排序。

现在,让我们看一下如何使用glob()函数来获取文件列表的例子:

<?php
$files = glob('path/to/files/*.txt');
foreach($files as $file){
    echo $file . "<br>";
}
?>

在上述例子中,我们使用glob()函数匹配了path/to/files/目录下的所有以.txt结尾的文件,并将结果存储在$files数组中。然后,我们通过foreach循环遍历数组,并将每个文件路径输出到浏览器。

如果要获取指定目录下的所有文件和子目录,可以使用递归调用glob()函数的方式:

<?php
function getFiles($dir){
    $files = glob($dir . '/*');
    foreach($files as $file){
        if(is_dir($file)){
            getFiles($file);
        }else{
            echo $file . "<br>";
        }
    }
}

getFiles('path/to/files');
?>

在上述例子中,我们定义了一个getFiles()函数来递归获取指定目录下的所有文件和子目录。首先,我们使用glob()函数获取指定目录下的所有文件和目录,并使用foreach循环遍历它们。如果遇到一个目录,我们再次调用getFiles()函数来获取该目录下的所有文件和目录。如果遇到一个文件,则将其路径输出到浏览器。

总结来说,使用glob()函数可以方便地获取与指定模式匹配的文件和目录的列表。可以根据自己的需求来指定匹配模式,并结合递归调用来获取所有文件和子目录的路径。