PHP8 ZipArchive::addGlob
(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 模式从目录添加文件