PHP 文件系统 glob() 函数



PHP 文件系统glob()函数可用于查找与模式匹配的文件和目录。当您需要列出目录中的文件时,此方法非常有用。

语法

以下是 PHP 文件系统glob()函数的语法:

array glob(string $pattern, int $flags);

参数

以下是glob()函数的必需和可选参数:

序号 参数及描述
1

$pattern (必需)

要搜索的模式。您可以使用通配符,例如:

  • * 匹配任意数量的字符。
  • ? 匹配恰好一个字符。
2

$flags (可选)

它可以用来控制搜索的行为。

一些常见的标志是:

  • GLOB_ONLYDIR: 只返回目录。
  • GLOB_MARK: 为每个返回的目录添加斜杠 (/)。
  • GLOB_NOSORT: 按发现顺序返回文件,不排序。
  • GLOB_NOCHECK: 如果未找到匹配项,则返回搜索模式。

返回值

PHP 中的glob()函数返回一个包含匹配的目录和文件的数组。如果未找到匹配项且未设置 GLOB_NOCHECK 标志,则它将生成一个空数组。如果发生错误,则返回 FALSE。

PHP 版本

glob()函数最初作为 PHP 4.3.0 的核心部分引入,并能与 PHP 5、PHP 7 和 PHP 8 良好地配合使用。

示例

我们使用了 PHP 文件系统glob()函数来查找当前目录中的所有 .txt 文件。此示例使用 '*' 通配符查找当前目录中所有扩展名为 .txt 的文件。

<?php
   // Look for all the text files using glob function
   $txtFiles = glob("*.txt");

   // print array of the text files
   print_r($txtFiles);
?>

输出

以下是以下代码的结果:

Array
(
    [0] => myfile.txt
    [1] => sample.txt
)

示例

此 PHP 示例使用 glob 函数查找特定目录中的所有 .jpg 文件。因此我们在路径之后使用了 *.jpg,其中 '*' 是通配符。因此它将获取指定文件夹中存在的所有 .jpg 文件。

<?php
   // get all the .jpg files in the specified folder
   $imageFiles = glob("/Users/abc/Desktop/PhpProjects/*.jpg");

   // print the .jpg file names 
   print_r($imageFiles);
?> 

输出

这将产生以下结果:

Array
(
    [0] => /Users/abc/Desktop/PhpProjects/image.jpg
    [1] => /Users/abc/Desktop/PhpProjects/mypic.jpg
)

示例

在此 PHP 代码中,我们将使用glob()函数查找当前目录中的所有文件和目录,并使用 GLOB_ONLYDIR 可选参数为目录添加尾随斜杠。

<?php
   //  get all the directories in the current directory
   $directories = glob("*/", GLOB_ONLYDIR);

   //Print the directories 
   print_r($directories);
?> 

输出

这将生成以下结果:

Array
(
    [0] => images/
    [1] => new dir/
)

示例

在此 PHP 代码中,我们将查找当前目录中的所有文件和目录,并使用 GLOB_MARK 参数为目录添加尾随斜杠。

<?php
   //  get all the files and directories in the current directory
   $items = glob("*", GLOB_MARK);
   
   //print the items here
   print_r($items);
?> 

输出

这将产生以下输出:

Array
(
    [0] => config.php
    [1] => csvfile.csv
    [2] => csvfile1.csv
    [3] => csvfile2.csv
    [4] => data.csv
    [5] => data1.csv
    [6] => error_log.log
    [7] => image.jpg
    [8] => images/
    [9] => index.php
    [10] => logo.gif
    [11] => myfile.txt
    [12] => myhtml.htm
    [13] => new dir/
    [14] => newfile.php
    [15] => sample.txt
)

注意

在某些平台上,如果您使用 PHP 的glob()函数,则很难区分错误和空匹配。

总结

使用 PHP 的glob()函数,我们可以查找与特定模式匹配的文件和目录。如果没有匹配项(除非指定 GLOB_NOCHECK 标志),它将创建一个空数组;如果是这样,它将返回 false。

php_function_reference.htm
广告