PHP在线解压ZIP文件解决方案

2018-07-24 17:59:00
小熊
原创
9046
摘要:如果能够在空间直接上传压缩包的话,那速度肯定会快的多。但是上传压缩包之后,如何解压是一个问题。我们的空间,用户获取到的权限是有限的,有很多空间服务商没有提供自助解压服务。所以,我们需要能够上传压缩包,还能解压缩,那样就完美了。

一.背景

我们在使用空间的时候,通常服务商只会给我们一个FTP账号和密码,然后通过FTP远程链接工具链接空间来上传我们的代码。这样,会有一个问题:如果代码文件过多,上传真的是非常慢的,几个小时都不足为奇,如果它能慢慢上传完还好,如果遇到网络或者其他原因造成网络中断,这种感受是非常痛苦的。

二.需求

如果能够在空间直接上传压缩包的话,那速度肯定会快的多。但是上传压缩包之后,如何解压是一个问题。我们的空间,用户获取到的权限是有限的,有很多空间服务商没有提供自助解压服务。所以,我们需要能够上传压缩包,还能解压缩,那样就完美了。

三.解决方案

网上也有很多关于在线解压缩和压缩的解决方法。比较流行的有 faisun_unzip 等等。关于PHP解压缩,其实是需要安装zlib扩展的,这样关于压缩相关函数才能使用。具体可查看 http://www.zlib.net 了解。

貌似自php4.3开始zlib压缩就已经内置在php中了,所以至少Windows环境下是不需要安装zlib的。如果你真的找不到 php_zlib.dll文件,在上面提供的网站上面下载。

具体的安装细节,我在这儿就不赘述了,如果不明白,请查查相关资料。

其中关于解压缩相关函数的使用,我们简单说一下。

gzclose () :  关闭一个打开的压缩文件。

gzeof():    判断是否在压缩文件尾。

gzfile():   读压缩文件到一个数组中。

gzgetc():   读压缩文件的字符。

gzgets():   读压缩文件的字符串。

gzopen():   打开压缩文件。

gzputs():   资料写入压缩文件。

gzread():   压缩文件读出指定长度字符串。

gzrewind():  重设压缩文件指针。

readgzfile(): 读出压缩文件。

...

具体使用方法见手册: http://www.php.net/manual/zh/book.zlib.php

四.案例

封装一个页面,上传至空间根目录,通过这个页面访问上传zip压缩包,或者浏览并选择该文件所在目录下面

的所有zip压缩包。(以 faisun_unzip为例,源码自行百度)如下图:

解压到目录,就是你设置一个需要解压到的自定义目录下面。留空的话,就是当前目录。

验证密码,就是在源文件中设置了一个验证码,仅为了安全考虑。

点击解压,我们看到了这个页面:

服务器文件:

注意事项:1.如果你在使用过程中出现报错,你需要检查环境,是否安装了zlib扩展。

     2.php 自带的解压缩类 ZipArchive 你可以了解一下。

文章分类
联系我们
联系人: 小熊
电话: 18037578880
Email: admin@cnsite.org
QQ: 929410000
微信: itseor
微博: itseoer
网址: www.beatmoon.com