函数:ZipArchive::addGlob()
适用版本:PHP 5 >= 5.3.0, PHP 7, PHP 8
用法:ZipArchive::addGlob() 方法用于向 ZIP 归档文件中添加与指定的 glob 模式匹配的文件。
语法:public bool ZipArchive::addGlob ( string $pattern [, int $flags = 0 [, array $options = array() ]] )
参数:
- pattern:要匹配的 glob 模式,可以包含通配符或正则表达式。
- flags(可选):用于修改匹配行为的标志。可选的标志有:
- GLOB_MARK:在匹配的目录后附加斜杠。
- GLOB_NOSORT:不进行排序。
- GLOB_NOCHECK:如果没有匹配项,则返回模式本身。
- GLOB_NOESCAPE:禁用反斜杠的转义。
- GLOB_BRACE:扩展 {a,b,c} 来匹配 a、b 和 c。
- GLOB_ONLYDIR:仅返回目录中匹配的项。
- GLOB_ERR:如果发生错误,则停止并返回错误码。
- options(可选):用于传递额外的选项的数组。
返回值:成功时返回 TRUE,失败时返回 FALSE。
示例:
$zip = new ZipArchive;
$zipFile = 'archive.zip';
if ($zip->open($zipFile, ZipArchive::CREATE) === TRUE) {
$zip->addGlob('path/to/files/*.txt', 0, ['add_path' => 'files/']);
$zip->close();
echo 'Files added successfully to the archive.';
} else {
echo 'Failed to create the archive.';
}
上述示例中,我们创建了一个名为 "archive.zip" 的 ZIP 归档文件,并向其添加位于 "path/to/files/" 目录下的所有以 ".txt" 结尾的文件。我们使用了额外的选项 ['add_path' => 'files/']
,该选项将添加文件时的路径前缀设置为 "files/",即将文件添加到 ZIP 归档文件中时,会在文件名前加上 "files/" 前缀。最后,我们关闭了 ZIP 归档文件,并输出相应的结果。
请注意,此函数需要安装并启用 PHP 的 Zip 扩展。