php 使用Glob()查找文件
2025-09-20 23:26
PHP
0
0
0
0
标题录入
封面图
在 PHP 中,`glob()` 函数用于查找与指定模式匹配的文件名。它类似于 shell 中的通配符(如 `*`、`?` 等),可以用来搜索目录中的文件。 ### 基本语法: ```php glob(string $pattern, int $flags = 0): array|false ``` - `$pattern`:要匹配的文件名模式。 - `$flags`:可选标志,用于修改 glob 的行为(如 `GLOB_BRACE`、`GLOB_NOSORT` 等)。 --- ## 示例 ### 1. 查找当前目录下所有 `.txt` 文件 ```php $files = glob("*.txt"); if ($files !== false) { foreach ($files as $file) { echo $file . "\n"; } } else { echo "没有找到文件。\n"; } ``` ### 2. 查找某个目录下的所有 `.php` 文件 ```php $files = glob("/path/to/directory/*.php"); foreach ($files as $file) { echo $file . "\n"; } ``` ### 3. 使用通配符 `*` 和 `?` ```php // 匹配以 "test" 开头,后跟任意字符的文件 $files = glob("test*"); // 匹配以 "a" 开头,然后是任意一个字符,再是 ".txt" $files = glob("a??.txt"); ``` ### 4. 使用 `GLOB_BRACE` 进行多模式匹配 ```php // 匹配 .txt 或 .log 文件 $files = glob("{*.txt,*.log}", GLOB_BRACE); foreach ($files as $file) { echo $file . "\n"; } ``` ### 5. 不排序结果(提高性能) ```php $files = glob("*.php", GLOB_NOSORT); ``` --- ## 注意事项 - `glob()` 返回的是一个数组,如果找不到任何文件,返回 `false`。 - 如果你希望递归查找子目录中的文件,可以使用 `RecursiveDirectoryIterator` 或 `iterator_to_array` 配合 `glob` 模式。 - 在 Windows 系统中,路径分隔符是 `\`,但 PHP 中可以使用 `/` 或 `\\`。 --- ## 递归查找所有 `.php` 文件(示例) ```php $files = glob('**/*.php', GLOB_BRACE); foreach ($files as $file) { echo $file . "\n"; } ``` > 注意:`**/` 是 **Unix-like** 系统的递归通配符,Windows 中可能需要使用其他方式实现递归查找。 --- 如果你有具体的需求(比如只查某一层目录、特定扩展名等),欢迎告诉我,我可以帮你定制代码。
上一篇:
卸载 yum安装的PHP
标题录入,一次不能超过6条
很多事情没有意义,为什么还要坚持去做?
T:0.006096s,M:116.06 KB
返回顶部
留言
留言
评论