PHP在线解压ZIP文件解决方案
- 2018-07-24 17:59:00
- 小熊 原创
- 10421
一.背景
我们在使用空间的时候,通常服务商只会给我们一个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 |