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

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

安装Zip扩展

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

apt-get install php7.2-zip -y

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

zip

Zipenabled
Zip version1.15.4
Libzip version1.1.2

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

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 = new \ZipArchive();  
$zippath=$_SERVER['DOCUMENT_ROOT'].'/';
$flag = $zip->open($zippath.'out.zip',  \ZipArchive::CREATE|\ZipArchive::OVERWRITE);

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

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

$zip = new \ZipArchive();  
$zippath=$_SERVER['DOCUMENT_ROOT'].'/';
$res= $zip->open($zippath.'out.zip',  \ZipArchive::CREATE|\ZipArchive::OVERWRITE);
if($res === True){
$zip->addFromString('test.txt', '这是一个测试文本');
    $zip->addFile('data.txt', 'entryname.txt');
$zip->renameName('entryname.txt','newname.txt');
    $zip->close();
    echo '成功';
}else{
echo '失败, 错误代码:' . $res;
}

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jsgang9

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值