上一篇说到了php打包压缩文件之PclZip方法,今天来说下另一种更为简单的方法,使用ZipArchive来压缩文件。这个是php的扩展类,自php5.2版本以后就已经支持这个扩展,如果你在使用的时候出现错误,查看下php.ini里面的extension=php_zip.dll前面的分号有没有去掉,然后再重启Apache这样才能使用这个类库。

使用ZipArchive压缩文件是非常简单的,php官网已经给我提供了很多相关示例,大家可以看下 http://www.php.net/manual/zh/class.ziparchive.php,例如:

<?php
$zip = new ZipArchive; //首先实例化这个类
if ($zip->open('test.zip') === TRUE) {  //然后查看是否存在test.zip这个压缩包
    $zip->addFile('too.php');
    $zip->addFile('test.php'); //将too.php和test.php两个文件添加到test.zip压缩包中
    $zip->close(); //关闭
    echo 'ok';
} else {
    echo 'failed';
}
?>

下面是一些参数说明:

<?php

/******** ziparchive 可选参数 *******/
/*
1.ZipArchive::addEmptyDir

添加一个新的文件目录

2.ZipArchive::addFile 

将文件添加到指定zip压缩包中。

3.ZipArchive::addFromString 

添加的文件同时将内容添加进去

4.ZipArchive::close 

关闭ziparchive

5.ZipArchive::extractTo 

将压缩包解压

6.ZipArchive::open

打开一个zip压缩包

7.ZipArchive::getStatusString

返回压缩时的状态内容,包括错误信息,压缩信息等等

8.ZipArchive::deleteIndex

删除压缩包中的某一个文件,如:deleteIndex(0)删除第一个文件

9.ZipArchive::deleteName

删除压缩包中的某一个文件名称,同时也将文件删除。
......
*/

?>

总之只要你的php5.2版本以上,使用ZipArchive来进行文件压缩还是比较方便的。具体的和PclZip哪一个运行速度比较快,这个磊子还没有做过测试,大家感兴趣的可以折腾折腾。