⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pclzip.lib.php

📁 mambo的cms源代码
💻 PHP
📖 第 1 页 / 共 5 页
字号:
    $p_result_list = array();    if (is_array($p_filelist))    {      // ----- Call the create fct      $v_result = $this->privCreate($p_filelist, $p_result_list, $v_add_path, $v_remove_path, $v_remove_all_path, $v_options);    }    // ----- Look if the $p_filelist is a string    else if (is_string($p_filelist))    {      // ----- Create a list with the elements from the string      $v_list = explode(PCLZIP_SEPARATOR, $p_filelist);      // ----- Call the create fct      $v_result = $this->privCreate($v_list, $p_result_list, $v_add_path, $v_remove_path, $v_remove_all_path, $v_options);    }    // ----- Invalid variable    else    {      // ----- Error log      PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type p_filelist");      $v_result = PCLZIP_ERR_INVALID_PARAMETER;    }    if ($v_result != 1)    {      // ----- Return      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);      return 0;    }    // ----- Return    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_result_list);    return $p_result_list;  }  // --------------------------------------------------------------------------------  // --------------------------------------------------------------------------------  // Function :  //   add($p_filelist, $p_add_dir="", $p_remove_dir="")  //   add($p_filelist, $p_option, $p_option_value, ...)  // Description :  //   This method supports two synopsis. The first one is historical.  //   This methods add the list of files in an existing archive.  //   If a file with the same name already exists, it is added at the end of the  //   archive, the first one is still present.  //   If the archive does not exist, it is created.  // Parameters :  //   $p_filelist : An array containing file or directory names, or  //                 a string containing one filename or one directory name, or  //                 a string containing a list of filenames and/or directory  //                 names separated by spaces.  //   $p_add_dir : A path to add before the real path of the archived file,  //                in order to have it memorized in the archive.  //   $p_remove_dir : A path to remove from the real path of the file to archive,  //                   in order to have a shorter path memorized in the archive.  //                   When $p_add_dir and $p_remove_dir are set, $p_remove_dir  //                   is removed first, before $p_add_dir is added.  // Options :  //   PCLZIP_OPT_ADD_PATH :  //   PCLZIP_OPT_REMOVE_PATH :  //   PCLZIP_OPT_REMOVE_ALL_PATH :  //   PCLZIP_OPT_COMMENT :  //   PCLZIP_OPT_ADD_COMMENT :  //   PCLZIP_OPT_PREPEND_COMMENT :  //   PCLZIP_CB_PRE_ADD :  //   PCLZIP_CB_POST_ADD :  // Return Values :  //   0 on failure,  //   The list of the added files, with a status of the add action.  //   (see PclZip::listContent() for list entry format)  // --------------------------------------------------------------------------------//  function add($p_filelist, $p_add_dir="", $p_remove_dir="")  function add($p_filelist /* options */)  {    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::add', "filelist='$p_filelist', ...");    $v_result=1;    // ----- Reset the error handler    $this->privErrorReset();    // ----- Set default values    $v_options = array();    $v_add_path = "";    $v_remove_path = "";    $v_remove_all_path = false;    $v_options[PCLZIP_OPT_NO_COMPRESSION] = FALSE;    // ----- Look for variable options arguments    $v_size = func_num_args();    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "$v_size arguments passed to the method");    // ----- Look for arguments    if ($v_size > 1) {      // ----- Get the arguments      $v_arg_list = &func_get_args();      // ----- Remove form the options list the first argument      array_shift($v_arg_list);      $v_size--;      // ----- Look for first arg      if ((is_integer($v_arg_list[0])) && ($v_arg_list[0] > 77000)) {        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Variable list of options detected");        // ----- Parse the options        $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options,                                            array (PCLZIP_OPT_REMOVE_PATH => 'optional',                                                   PCLZIP_OPT_REMOVE_ALL_PATH => 'optional',                                                   PCLZIP_OPT_ADD_PATH => 'optional',                                                   PCLZIP_CB_PRE_ADD => 'optional',                                                   PCLZIP_CB_POST_ADD => 'optional',                                                   PCLZIP_OPT_NO_COMPRESSION => 'optional',                                                   PCLZIP_OPT_COMMENT => 'optional',                                                   PCLZIP_OPT_ADD_COMMENT => 'optional',                                                   PCLZIP_OPT_PREPEND_COMMENT => 'optional' ));        if ($v_result != 1) {          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);          return 0;        }        // ----- Set the arguments        if (isset($v_options[PCLZIP_OPT_ADD_PATH])) {          $v_add_path = $v_options[PCLZIP_OPT_ADD_PATH];        }        if (isset($v_options[PCLZIP_OPT_REMOVE_PATH])) {          $v_remove_path = $v_options[PCLZIP_OPT_REMOVE_PATH];        }        if (isset($v_options[PCLZIP_OPT_REMOVE_ALL_PATH])) {          $v_remove_all_path = $v_options[PCLZIP_OPT_REMOVE_ALL_PATH];        }      }      // ----- Look for 2 args      // Here we need to support the first historic synopsis of the      // method.      else {        //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 3, "Static synopsis");        // ----- Get the first argument        $v_add_path = $v_arg_list[0];        // ----- Look for the optional second argument        if ($v_size == 2) {          $v_remove_path = $v_arg_list[1];        }        else if ($v_size > 2) {          // ----- Error log          PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid number / type of arguments");          // ----- Return          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, PclZip::errorCode(), PclZip::errorInfo());          return 0;        }      }    }    // ----- Trace    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "add_path='$v_add_path', remove_path='$v_remove_path', remove_all_path='".($v_remove_all_path?'true':'false')."'");    // ----- Look if the $p_filelist is really an array    $p_result_list = array();    if (is_array($p_filelist))    {      // ----- Call the create fct      $v_result = $this->privAdd($p_filelist, $p_result_list, $v_add_path, $v_remove_path, $v_remove_all_path, $v_options);    }    // ----- Look if the $p_filelist is a string    else if (is_string($p_filelist))    {      // ----- Create a list with the elements from the string      $v_list = explode(PCLZIP_SEPARATOR, $p_filelist);      // ----- Call the create fct      $v_result = $this->privAdd($v_list, $p_result_list, $v_add_path, $v_remove_path, $v_remove_all_path, $v_options);    }    // ----- Invalid variable    else    {      // ----- Error log      PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type p_filelist");      $v_result = PCLZIP_ERR_INVALID_PARAMETER;    }    if ($v_result != 1)    {      // ----- Return      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);      return 0;    }    // ----- Return    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_result_list);    return $p_result_list;  }  // --------------------------------------------------------------------------------  // --------------------------------------------------------------------------------  // Function : listContent()  // Description :  //   This public method, gives the list of the files and directories, with their  //   properties.  //   The properties of each entries in the list are (used also in other functions) :  //     filename : Name of the file. For a create or add action it is the filename  //                given by the user. For an extract function it is the filename  //                of the extracted file.  //     stored_filename : Name of the file / directory stored in the archive.  //     size : Size of the stored file.  //     compressed_size : Size of the file's data compressed in the archive  //                       (without the headers overhead)  //     mtime : Last known modification date of the file (UNIX timestamp)  //     comment : Comment associated with the file  //     folder : true | false  //     index : index of the file in the archive  //     status : status of the action (depending of the action) :  //              Values are :  //                ok : OK !  //                filtered : the file / dir is not extracted (filtered by user)  //                already_a_directory : the file can not be extracted because a  //                                      directory with the same name already exists  //                write_protected : the file can not be extracted because a file  //                                  with the same name already exists and is  //                                  write protected  //                newer_exist : the file was not extracted because a newer file exists  //                path_creation_fail : the file is not extracted because the folder  //                                     does not exists and can not be created  //                write_error : the file was not extracted because there was a  //                              error while writing the file  //                read_error : the file was not extracted because there was a error  //                             while reading the file  //                invalid_header : the file was not extracted because of an archive  //                                 format error (bad file header)  //   Note that each time a method can continue operating when there  //   is an action error on a file, the error is only logged in the file status.  // Return Values :  //   0 on an unrecoverable failure,  //   The list of the files in the archive.  // --------------------------------------------------------------------------------  function listContent()  {    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, 'PclZip::listContent', "");    $v_result=1;    // ----- Reset the error handler    $this->privErrorReset();    // ----- Check archive    if (!$this->privCheckFormat()) {      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);      return(0);    }    // ----- Call the extracting fct    $p_list = array();    if (($v_result = $this->privList($p_list)) != 1)    {      unset($p_list);      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo());      return(0);    }    // ----- Return    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_list);    return $p_list;  }  // --------------------------------------------------------------------------------  // --------------------------------------------------------------------------------  // Function :  //   extract($p_path="./", $p_remove_path="")  //   extract([$p_option, $p_option_value, ...])  // Description :  //   This method supports two synopsis. The first one is historical.  //   This method extract all the files / directories from the archive to the  //   folder indicated in $p_path.  //   If you want to ignore the 'root' part of path of the memorized files  //   you can indicate this in the optional $p_remove_path parameter.  //   By default, if a newer file with the same name already exists, the  //   file is not extracted.  //  //   If both PCLZIP_OPT_PATH and PCLZIP_OPT_ADD_PATH aoptions  //   are used, the path indicated in PCLZIP_OPT_ADD_PATH is append  //   at the end of the path value of PCLZIP_OPT_PATH.  // Parameters :  //   $p_path : Path where the files and directories are to be extracted  //   $p_remove_path : First part ('root' part) of the memorized path  //                    (if any similar) to remove while extracting.  // Options :  //   PCLZIP_OPT_PATH :  //   PCLZIP_OPT_ADD_PATH :  //   PCLZIP_OPT_REMOVE_PATH :  //   PCLZIP_OPT_REMOVE_ALL_PATH :  //   PCLZIP_CB_PRE_EXTRACT :  //   PCLZIP_CB_POST_EXTRACT :  // Return Values :  //   0 or a negative value on failure,  //   The list of the extracted files, with a status of the action.  //   (see PclZip::listContent() for list entry format)  // --------------------------------------------------------------------------------  //function extract($p_path="./", $p_remove_path="")  function extract(/* options */)  {    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::extract", "");    $v_result=1;    // ----- Reset the error handler    $this->privErrorReset();    // ----- Check archive    if (!$this->privCheckFormat()) {      //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);      return(0);    }    // ----- Set default values

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -