最近一直在处理php相关的项目,所以今天把自己了解的知识写出来,给大家分享一下,也给自己做个备份。今儿主要是说下PclZip压缩文件的方法还有一种是ZipArchive类压缩方法这个将在下一篇文章说到。

使用PclZIp(zip格式)压缩,首先需要下载它的包文件。PclZip功能还是慢强大的,它可以进行压缩和解压,以及一些添加和删除的类的方法等等。当然了这些内容我们都可以在网上查找的到,没必要都得记住。我们只要在需要使用的时候自己可以很快的在网上找到使用方法就可以了。首先我们需要的就是要将下载的库文件进行引入,如

<?php include('pclzip/pclzip.lib.php');  ?>

//括号里面的地址改成自己的pclzip.lib.php 文件所在地址,它的所有的功能都在pclzip.lib.php里面

引入之后我们就可以进行使用了,下面是我使用时简单写的一个方法。

<?php

    $zipname = "test.zip"; //压缩包的名称
    $zipnames = '/zipfiles/'.$zipname; //压缩包所在路径
    $z = new PclZip($zipnames);	//实例化这个PclZip类
    $v_list = $z->create('file.txt,data/text.txt,folder'); //将文件进行压缩
    if ($v_list == 0)
    {
      die("Error : ".$archive->errorInfo(true));  //如果有误,提示错误信息。
    }

?>

这个一个简单的zip压缩就做好了,在这个方法中我们主要就是使用了PclZip里面的PclZip类以及它里面创建压缩包的方法create。从上面的例子我们可以看到下面这个内容

<?php  PclZip($zip_filename);  ?> 

//里面是该压缩包的名称以及所在路径。并不是把名称写上就可以了。如果路径不对是无法找到的。
<?php  PclZip::create($filelist, [optional arguments]);  ?>

//create方法来创建压缩包。

//$filelist可以用数组包含文件的名称和文件夹名称或者是一个字符串来包含.

//如果是多个文件的话可以用逗号来隔开,如上面的例子。

/*****  optional arguments 可选参数 ******/
/*
1.PCLZIP_OPT_REMOVE_PATH

移除部份的目录路径,例如原本档案所在的目录为aa/bb/cc/test.test.txt,但是希望压缩或解压缩后的路径为cc/test.txt,就可以使用PCLZIP_OPT_REMOVE_PATH,"aa /bb"。可用于create()、add()、extract()、extractByIndex()。 (与PCLZIP_OPT_REMOVE_ALL_PATH一起用的时候会被自动忽略) 

2.PCLZIP_OPT_REMOVE_ALL_PATH

移除所有档案的目录,所有档案都会被解压缩或压缩到当前或是指定的目录中,请注意如果有不同目录的相同名称档案,使用此参数时会被覆盖,此参数不需要引数。可用于create()、add()、extract()、extractByIndex()。

3.PCLZIP_OPT_ADD_PATH

增加一个目录。可用于create()、add()、extract()。 (使用于create()时,是把要压缩的档案放进这个目录中再压缩,使用于extract()时,是在要解压缩的路径中增加此目录,并解压缩到此目录中)。

4.PCLZIP_OPT_ADD_COMMENT

建立压缩档时增加一个注解,如果原本已经有注解的话,将会接在后面。

5.PCLZIP_OPT_COMMENT

建立压缩档时增加一个注解,如果原本已经有注解的话,将会直接覆盖过去。

......

*/

以上只是PclZip的其中一种方法,大家感兴趣的可以去下面网址查看。

官方网站: http://www.phpconcept.net/pclzip

下载地址:http://www.phpconcept.net/pclzip/pclzip-downloads

用户指南:http://www.phpconcept.net/pclzip/user-guide/22