方法:PclZip::add

英文原文:http://www.phpconcept.net/pclzip/user-guide/57

概述

本方法用于添加文件/目录到压缩包中。

(PclZip >= 1.1)

用法

  1. PclZip::add($filelist, [可选参数])

参数

  • $filelist:文件列表,可以是以下内容
    • 一个数组,每个数组项是一个文件或目录名
    • 一个字符串:一个文件或目录名
    • 一个字符串:一堆文件或目录名,并以英文逗号,分隔
  • 支持的可选参数
    • PCLZIP_OPT_REMOVE_PATH
    • PCLZIP_OPT_REMOVE_ALL_PATH
    • PCLZIP_OPT_ADD_PATH
    • PCLZIP_CB_PRE_ADD
    • PCLZIP_CB_POST_ADD
    • PCLZIP_OPT_NO_COMPRESSION
    • PCLZIP_OPT_COMMENT
    • PCLZIP_OPT_ADD_COMMENT
    • PCLZIP_OPT_PREPEND_COMMENT
    • PCLZIP_OPT_TEMP_FILE_THRESHOLD
    • PCLZIP_OPT_TEMP_FILE_ON
    • PCLZIP_OPT_TEMP_FILE_OFF

更多见可选参数页面。

返回值

可能的返回值:

  • 0:出错时会返回 0
  • 一个数组:各个文件的属性信息(更多见返回值页面)

描述

本方法用于将$filelist参数中指定的文件/目录添加到压缩包中。 若是目录,则目录中的所有内容包括子目录结构都会添加到压缩包中。

若压缩包中已存在某个文件,则再次添加同名文件到压缩包时, PclZip 并不会自动覆盖已有文件,而是在压缩包内的相同目录中同时存在 2 个同名的文件。 (译注:暂未找到一个参数,可以让 PclZip 自动覆盖压缩包内已存在的文件)

可选参数可用于:

  • 修改文件在压缩包内的目录路径
  • 不压缩文件,直接添加到压缩包中
  • 为整个压缩包添加注释文字

示例

  1. require_once('pclzip.lib.php');
  2. $archive = new PclZip('archive.zip');
  3. $v_list = $archive->add('file.txt,data/text.txt,folder/');
  4. if ($v_list == 0) {
  5. die("Error : " . $archive->errorInfo(true));
  6. }

上面示例中,会将以下文件/目录添加到压缩包中:

  • file.txt
  • data/text.txt
  • folder/
  1. require_once('pclzip.lib.php');
  2. $archive = new PclZip('archive.zip');
  3. $v_list = $archive->add(
  4. 'dev/file.txt,dev/text.txt',
  5. PCLZIP_OPT_ADD_PATH, 'install',
  6. PCLZIP_OPT_REMOVE_PATH, 'dev'
  7. );
  8. if ($v_list == 0) {
  9. die("Error : ".$archive->errorInfo(true));
  10. }

上面示例中,最终的效果是:

文件系统中:

  • dev/file.txt
  • dev/text.txt

添加到压缩包后的目录结构:

  • install/file.txt
  • install/text.txt