TP里使用PHP自带的Zip扩展压缩文件

Zip扩展能够读取或写入 ZIP 压缩档案及其中的文件。

安装Zip扩展
在Ubuntu下通过apt安装zip扩展,这里以php7.2为例,命令如下


更多安装方式见官方:PHP: 安装 - Manual,安装完成后,调用phpinfo查看,如果信息包含以下信息

zip

Zipenabled
Zip version1.15.4
Libzip version1.1.2

zlib

ZLib Supportenabled
Stream Wrappercompress.zlib://
Stream Filterzlib.inflate, zlib.deflate
Compiled Version1.2.11
Linked Version1.2.11
DirectiveLocal ValueMaster Value
zlib.output_compressionOffOff
zlib.output_compression_level-1-1
zlib.output_handlerno valueno value


说明已经安装成功,版本号会有所不同。

ZipArchive 类(部分)
ZipArchive::addEmptyDir — 添加空目录到压缩包

ZipArchive::addEmptyDir(string $dirname, int $flags = 0): bool

ZipArchive::addFile — 通过给出的文件路径添加压缩包

ZipArchive::addFile(
string $filepath,
string $entryname = "",
int $start = 0,
int $length = 0,
int $flags = ZipArchive::FL_OVERWRITE
): bool

ZipArchive::addFromString — 把内容添加到压缩包的文件里

ZipArchive::addFromString(string $name, string $content, int $flags = ZipArchive::FL_OVERWRITE): bool

ZipArchive::close — 关闭当前进程 (打开的或者新建的)

ZipArchive::close(): bool

ZipArchive::extractTo — 解压缩文件

ZipArchive::extractTo(string $pathto, array|string|null $files = null): bool

ZipArchive::open — 打开或新建压缩文件

ZipArchive::open(string $filename, int $flags = 0): bool|int

ZipArchive::setPassword — 设置解压缩密码

ZipArchive::setPassword(string $password): bool

ZipArchive::renameName — 压缩包里的文件重命名

ZipArchive::renameName(string $name, string $new_name): bool

更多类说明参考官网PHP: Zip - Manual

TP使用Zip示例
首先要打开或者新建一个压缩文件,命令如下


新建一个Zip类赋值给$zip,$zippath为当前站点根目录,$flag为创建或打开zip文件返回bool值,成功返回为True。创建成功并操作完成后会在根目录下生成一个out.zip文件。

添加文件、内容及文件改名并生成压缩包的完整示例,命令如下


添加文件的时候也可以直接重名文件名。

到这里,TP基于Zip扩展创建压缩文件完成了。

LEAVE A REPLY

游客评论不支持回复他人评论内容,如需回复他人评论内容请