(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL zip >= 1.9.0)
ZipArchive::addGlob — 按 glob 模式从目录添加文件
说明
public ZipArchive::addGlob(string $pattern, int $flags = 0, array $options = []): array|false
从与 glob 匹配的目录中添加文件。pattern
注意: 为了最大限度地提高代码可移植性,建议在 ZIP 文件名中使用斜线 (/) 做为目录分隔符。
参数
pattern
一个 glob() 模式,文件将与之匹配。
flags
一点旗帜的面具。
glob()
options
选项的关联数组。可用选项包括:
"add_path"
转换为文件的本地路径时要预置的前缀 存档。这将在 or 选项定义的任何删除操作之后应用。
"remove_path"
"remove_all_path"
"remove_path"
在添加到存档之前从匹配的文件路径中删除的前缀。
"remove_all_path"
true
仅使用文件名并添加到存档的根目录。"flags"
位掩码由
ZipArchive::FL_OVERWRITE
、ZipArchive::FL_ENC_GUESS
、ZipArchive::FL_ENC_UTF_8
、ZipArchive::FL_ENC_CP437
、ZipArchive::FL_OPEN_FILE_NOW
组成。 ZIP 常量页面上描述了这些常量的行为。"comp_method"
压缩方法,
ZipArchive::CM_*
常量之一,请参阅 ZIP 常量页。"comp_flags"
压缩级别。
"enc_method"
加密方法,
ZipArchive::EM_*
常量之一,请参阅 ZIP 常量页。"enc_password"
用于加密的密码。
返回值
成功时添加的文件数组 或者在失败时返回 false
更新日志
版本 | 说明 |
---|---|
8.0.0 / 1.18.0 | "flags" 添加了 in。options |
8.0.0 / 1.18.1 | "comp_method" 、 和 in 被添加。"comp_flags" "enc_method" "enc_password" options |
8.3.0 / 1.22.1 | 添加了 ZipArchive::FL_OPEN_FILE_NOW 。 |
示例
示例 #1 ZipArchive::addGlob() example
从当前工作目录添加所有 php 脚本和文本文件
<?php
$zip = new ZipArchive();
$ret = $zip->open('application.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE);
if ($ret !== TRUE) {
printf('Failed with code %d', $ret);
} else {
$options = array('add_path' => 'sources/', 'remove_all_path' => TRUE);
$zip->addGlob('*.{php,txt}', GLOB_BRACE, $options);
$zip->close();
}
?>
参见
- ZipArchive::addFile() - 从给定路径将文件添加到ZIP存档中
- ZipArchive::addPattern() - 按 PCRE 模式从目录添加文件
更多建议: