• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php如何实现对文件压缩

php 搞代码 4年前 (2022-01-04) 18次浏览 已收录 0个评论

压缩一个文件

我们将一个文件生成一个压缩包。

<?php$path = "c:/wamp/www/log.txt";$filename = "test.zip";$zip = new ZipArchive();$zip->open($filename,ZipArchive::CREATE);   //打开压缩包$zip->addFile($path,basename($path));   //向压缩包中添加文件$zip->close();  //关闭压缩包

上述代码将c:/wamp/www/log.txt文件压缩生成了test.zip,并保存在当前目录。

相关推荐:《php入门教程》

压缩多个文件

压缩多个文件,其实就是addFile执行多次,可以通过数组的遍历来实现。

<?php$fileList = array(    "c:/wamp/www/log.txt",    "c:/wamp/www/weixin.class.php");$filename = "test.zip";$zip = new ZipArchive();$zip->open($filename,ZipArchive::CREATE);   //打开压缩包foreach($fileList as $file){    $zip->addFile($file,basename($file));   //向压缩包中添加文件}$zip->close();  //关闭压缩包

压缩一个目录

<?phpfunction addFileToZip($path,$zip){    $handler=opendir($path); //打开当前文件夹由$path指定。    while(($filename=readdir($handler))!==false){        if($filename != "." && $filename != ".."){//<strong style="color:transparent">来源gao@daima#com搞(%代@#码网</strong>文件夹文件名字为'.'和‘..’,不要对他们进行操作            if(is_dir($path."/".$filename)){// 如果读取的某个对象是文件夹,则递归                addFileToZip($path."/".$filename, $zip);            }else{ //将文件加入zip对象                $zip->addFile($path."/".$filename);            }        }    }    @closedir($path);}$zip=new ZipArchive();if($zip->open('rsa.zip', ZipArchive::OVERWRITE)=== TRUE){    addFileToZip('rsa/', $zip); //调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法    $zip->close(); //关闭处理的zip文件}

压缩并下载zip包

我的时候,我们需要打包之后,提供下载,然后删除压缩包。

可以分为以下几步:

(1)判断给出的路径,是文件夹,还是文件。文件夹还需要遍历添加文件。

(2)设置相关文件头,并使用readfile函数提供下载。

(3)使用unlink函数删除压缩包。

<?phpfunction addFileToZip($path,$zip){    $handler=opendir($path); //打开当前文件夹由$path指定。    while(($filename=readdir($handler))!==false){        if($filename != "." && $filename != ".."){//文件夹文件名字为'.'和‘..’,不要对他们进行操作            if(is_dir($path."/".$filename)){// 如果读取的某个对象是文件夹,则递归                addFileToZip($path."/".$filename, $zip);            }else{ //将文件加入zip对象                $zip->addFile($path."/".$filename);            }        }    }    @closedir($path);}$zip=new ZipArchive();if($zip->open('rsa.zip', ZipArchive::OVERWRITE)=== TRUE){    $path = 'rsa/';    if(is_dir($path)){  //给出文件夹,打包文件夹        addFileToZip($path, $zip);    }else if(is_array($path)){  //以数组形式给出文件路径        foreach($path as $file){            $zip->addFile($file);        }    }else{      //只给出一个文件        $zip->addFile($path);    }    $zip->close(); //关闭处理的zip文件}

以上就是php如何实现对文件压缩的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php如何实现对文件压缩

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址