手机版

php实现了zip压缩文件的解压代码共享(简单易懂)

时间:2021-11-08 来源:互联网 编辑:宝哥软件园 浏览:

经过仔细研究,用php编写的原始解压缩程序比预期的要高效得多。既然这么好,不如优化一下,然后在自己的后台使用。虽然现在大部分的控制面板都有压缩和解压的功能,但是有时候会比较麻烦。在此之前,我没有接触过php压缩,但我在网上搜索过。大多数是php压缩类和压缩函数,从几百行到几千行代码不等。这对于我这样的新手来说非常困惑,而且我也不需要这么复杂的功能。最后,参考功能手册,在明确了几个相关的功能后,我们就能明白如何摆脱它们了。

记得在php.ini中通过去掉扩展名=php_zip.dll前的分号来打开zip源代码:复制代码如下:Php//需要打开并配置PHP _ zip . dll//phpinfo();标题(' Content-type : text/html;charset=utf-8 ');函数get _ zip _ originalsize ($ filename,$ path){//首先判断要解压缩的文件是否有if(!File_exists($filename)){die('文件$filename不存在!');}$starttime=explode(',micro time());//解压缩开始的时间//将文件名和路径转换为windows系统默认的gb2312编码,否则将无法读取$ filename=iconv ('UTF-8 ',' GB 2312 ',$ filename);$path=iconv('utf-8 ',' gb2312 ',$ path);//打开压缩包$ resource=zip _ open($ filename);$ I=1;//遍历并读取压缩包中的一个文件while($ dir _ resource=zip _ read($ resource)){//如果可以打开,则继续if (zip _ entry _ open ($ resource,$ dir _ resource)){//获取当前项目的名称,即压缩包中当前对应的文件名$ file _ name=$。//用最后一个“/”除,然后用字符串截取路径部分$ file _ path=substr ($ file _ name,0,strrpos ($ file _ name,'/');//如果路径不存在,请创建一个目录。true表示您可以创建多级目录,如果(!is _ dir($ file _ path)){ mkdir($ file _ path,0777,true);}//如果不是目录,写文件if(!is _ dir($ file _ name){//读取此文件$ file _ size=zip _ entry _ filesize($ dir _ resource);//最大读数为6M。如果文件太大,跳过解压缩,继续下一个if($ file _ size(1024 * 1024 * 6)){ $ file _ content=zip _ entry _ read($ dir _ resource,$ file _ size);file_put_contents($file_name,$ file _ content);} }else{echo 'p '。$i. $ i .由于文件太大,此文件已被跳过。iconv ('gb2312 ',' utf-8 ',$ file _ name)。/p ';} }//关闭当前的zip _ entry _ close($ dir _ resource);} }//Close zip _ Close($ resource);$endtime=explode(',micro time());//解压缩结束的时间$ this time=$ end time[0]$ end time[1]-($ start time[0]$ start time[1]);$thistime=round($thistime,3);//保留3为十进制回声' p解压完成!解压费用:$这一次秒。/p ';} $ size=get _ zip _ original size(' 20131101 . zip ',' temp/');测试解压了一个300 KB以上的小文件,用了0.115秒,测试解压了一个30 MB以上的小文件(网页文件,有很多小文件),用了20多秒。

版权声明:php实现了zip压缩文件的解压代码共享(简单易懂)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。