收集自网上:
复制代码 代码如下:
array_map(‘unlink’,glob(‘*’));
抛砖引玉而已,有很多朋友可能还不知道有glob这个函数吧。更多的用法看手册吧。
PHP glob() 函数
定义和用法
glob() 函数返回匹配指定模式的文件名或目录。
该函数返回一个包含有匹配文件 / 目录的数组。如果出错返回 false。
语法
复制代码 代码如下:
glob(pattern,flags)
参数
描述
file
必需。规定检索模式。
size
可选。规定特殊的设定。
GLOB_MARK – 在每个返回的项目中加一个斜线
GLO
在PHP编程语言中,`glob()`函数是一个非常实用的工具,它允许开发者通过指定的模式匹配文件或目录。这个函数可以用来查找特定路径下符合特定规则的所有文件和子目录,返回的结果是一个包含匹配项的数组。在本文中,我们将深入探讨`glob()`函数的用法、参数以及一些示例。
### glob()函数定义
`glob()`函数的基本语法是:
```php
glob(string $pattern, int $flags = 0)
```
- `$pattern`:这是必需的参数,表示你要匹配的模式。它可以包含通配符,如星号(*)、问号(?)和方括号([])来代表任意字符、单个任意字符以及字符范围。
- `$flags`:这是可选参数,用于设定一些特殊的行为。例如,`GLOB_MARK`会在返回的每个目录项后添加一个斜线,`GLOB_NOSORT`则会保持文件的原始顺序而不会进行排序。
### flags参数的解释
- `GLOB_MARK`: 如果设置,会在每个返回的目录项后面添加一个斜线("/")。
- `GLOB_NOSORT`: 如果设置,将按照文件在目录中的原始顺序返回,而不是按字母顺序。
- `GLOB_NOCHECK`: 如果设置,即使没有匹配的文件,也会返回模式本身。
- `GLOB_NOESCAPE`: 如果设置,反斜线("\")不会转义元字符。
- `GLOB_BRACE`: 如果设置,会扩展大括号表达式,如"{a,b,c}",匹配 'a'、'b' 或 'c'。
- `GLOB_ONLYDIR`: 如果设置,只返回匹配的目录项,不包括文件。
- `GLOB_ERR`: 如果设置,遇到错误(如不可读的目录)时,会停止执行并返回错误信息,而在默认情况下,错误会被忽略。这是从PHP 5.1版本开始添加的。
### 使用示例
**例子 1**:查找当前目录下所有的`.txt`文件。
```php
<?php
print_r(glob "*.txt"));
?>
```
这将输出所有`.txt`文件的名称,例如:
```
Array
(
[0] => target.txt
[1] => source.txt
[2] => test.txt
[3] => test2.txt
)
```
**例子 2**:查找当前目录下所有类型的文件。
```php
<?php
print_r(glob("*.*"));
?>
```
这将输出所有文件的名称,不论其类型,例如:
```
Array
(
[0] => contacts.csv
[1] => default.php
[2] => target.txt
[3] => source.txt
[4] => tem1.tmp
[5] => test.htm
[6] => test.ini
[7] => test.php
[8] => test.txt
[9] => test2.txt
)
```
### 实际应用
在给出的示例中,`array_map('unlink', glob('*'));`这段代码展示了如何使用`glob()`函数配合`array_map()`函数来删除一个目录下的所有文件。`unlink()`函数用于删除指定的文件,`array_map()`则将`unlink()`应用于`glob()`返回的每个文件名上,从而实现批量删除。
请注意,操作文件系统需谨慎,尤其是在涉及删除操作时,一定要确保你清楚这些操作的影响,避免造成数据丢失。
`glob()`函数在处理文件和目录时非常灵活,结合其他PHP函数,如`mkdir()`, `rmdir()`, `chmod()`, 和 `unlink()`等,可以实现各种复杂的文件系统操作。了解和熟练掌握`glob()`函数对于PHP开发者来说是非常有益的,它能帮助你更高效地管理项目中的文件和目录。