php 如何打包,php如何打包文件为ZIP压缩包

这篇博客介绍了如何使用PHP的ZipArchive类来获取指定文件夹的内容,并将其打包成ZIP压缩包。首先,定义了一个`list_dir`函数用于获取目录下的文件列表,然后通过遍历文件列表,将文件添加到ZIP档案中。如果压缩包不存在,则创建新的ZIP文件,否则直接对已存在的压缩包进行操作。最终,这个过程能够成功地将指定文件夹内容压缩为ZIP格式。
摘要由CSDN通过智能技术生成

首先定义获取本地文件列表的方法

function list_dir($dir){

$result = array();

if (is_dir($dir)){

$file_dir = scandir($dir);

foreach($file_dir as $file){

if ($file == '.' || $file == '..'){

continue;

}

elseif (is_dir($dir.$file)){

$result = array_merge($result, list_dir($dir.$file.'/'));

}

else{

array_push($result, $dir.$file);

}

}

}

return $result;

}

然后$datalist=list_dir(‘./’.文件夹名字.’/’);

定义压缩包名字

$zipfile = 压缩包名字.”.zip”;

//如果没有生成ZIP压缩包的文件名需要重新生成

if(!file_exists($zipfile)){

//重新生成文件

$zip = new ZipArchive();//使用本类,linux需开启zlib,windows需取消php_zip.dll前的注释

if ($zip->open($zipfile, ZIPARCHIVE::CREATE)!==TRUE) {

exit(‘无法打开文件,或者文件创建失败’);

}

foreach( $datalist as $val){

if(file_exists($val)){

$zip->addFile( $val, basename($val));//第二个参数是放在压缩包中的文件名称,如果文件可能会有重复,就需要注意一下

}

}

$zip->close();//关闭

}

//向生成的压缩包内添加文本文件

$zip=new ZipArchive;

$res=$zip->open($dname.’.zip’,ZipArchive::CREATE);

if($res===TRUE){

$zip->addFromString(‘elvns.txt’,’欢迎使用互动精灵服务’);

$zip->close();

print(‘执行成功’);

}else{

echo ‘执行失败’;

}

这样就成功将制定的文件夹打包成ZIP压缩包了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值