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

📄 pclzip.lib.php

📁 mambo的cms源代码
💻 PHP
📖 第 1 页 / 共 5 页
字号:
    $v_options = array();    $v_path = "./";    $v_remove_path = "";    $v_remove_all_path = false;    // ----- Look for variable options arguments    $v_size = func_num_args();    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "$v_size arguments passed to the method");    // ----- Default values for option    $v_options[PCLZIP_OPT_EXTRACT_AS_STRING] = FALSE;    // ----- Look for arguments    if ($v_size > 0) {      // ----- Get the arguments      $v_arg_list = &func_get_args();      // ----- 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");        // ----- Parse the options        $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options,                                            array (PCLZIP_OPT_PATH => 'optional',                                                   PCLZIP_OPT_REMOVE_PATH => 'optional',                                                   PCLZIP_OPT_REMOVE_ALL_PATH => 'optional',                                                   PCLZIP_OPT_ADD_PATH => 'optional',                                                   PCLZIP_CB_PRE_EXTRACT => 'optional',                                                   PCLZIP_CB_POST_EXTRACT => 'optional',                                                   PCLZIP_OPT_SET_CHMOD => 'optional',                                                   PCLZIP_OPT_BY_NAME => 'optional',                                                   PCLZIP_OPT_BY_EREG => 'optional',                                                   PCLZIP_OPT_BY_PREG => 'optional',                                                   PCLZIP_OPT_BY_INDEX => 'optional',                                                   PCLZIP_OPT_EXTRACT_AS_STRING => 'optional',                                                   PCLZIP_OPT_EXTRACT_IN_OUTPUT => 'optional' ));        if ($v_result != 1) {          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);          return 0;        }        // ----- Set the arguments        if (isset($v_options[PCLZIP_OPT_PATH])) {          $v_path = $v_options[PCLZIP_OPT_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];        }        if (isset($v_options[PCLZIP_OPT_ADD_PATH])) {          // ----- Check for '/' in last path char          if ((strlen($v_path) > 0) && (substr($v_path, -1) != '/')) {            $v_path .= '/';          }          $v_path .= $v_options[PCLZIP_OPT_ADD_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_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__, 0, PclZip::errorInfo());          return 0;        }      }    }    // ----- Trace    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 2, "path='$v_path', remove_path='$v_remove_path', remove_all_path='".($v_remove_path?'true':'false')."'");    // ----- Call the extracting fct    $p_list = array();    $v_result = $this->privExtractByRule($p_list, $v_path, $v_remove_path,	                                     $v_remove_all_path, $v_options);    if ($v_result < 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 :  //   extractByIndex($p_index, $p_path="./", $p_remove_path="")  //   extractByIndex($p_index, [$p_option, $p_option_value, ...])  // Description :  //   This method supports two synopsis. The first one is historical.  //   This method is doing a partial extract of the archive.  //   The extracted files or folders are identified by their index in the  //   archive (from 0 to n).  //   Note that if the index identify a folder, only the folder entry is  //   extracted, not all the files included in the archive.  // Parameters :  //   $p_index : A single index (integer) or a string of indexes of files to  //              extract. The form of the string is "0,4-6,8-12" with only numbers  //              and '-' for range or ',' to separate ranges. No spaces or ';'  //              are allowed.  //   $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_OPT_EXTRACT_AS_STRING : The files are extracted as strings and  //     not as files.  //     The resulting content is in a new field 'content' in the file  //     structure.  //     This option must be used alone (any other options are ignored).  //   PCLZIP_CB_PRE_EXTRACT :  //   PCLZIP_CB_POST_EXTRACT :  // Return Values :  //   0 on failure,  //   The list of the extracted files, with a status of the action.  //   (see PclZip::listContent() for list entry format)  // --------------------------------------------------------------------------------  function extractByIndex($p_index /* $options */)  {    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::extractByIndex", "index='$p_index', ...");    $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    $v_options = array();    $v_path = "./";    $v_remove_path = "";    $v_remove_all_path = false;    // ----- Look for variable options arguments    $v_size = func_num_args();    //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "$v_size arguments passed to the method");    // ----- Default values for option    $v_options[PCLZIP_OPT_EXTRACT_AS_STRING] = FALSE;    // ----- 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");        // ----- Parse the options        $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options,                                            array (PCLZIP_OPT_PATH => 'optional',                                                   PCLZIP_OPT_REMOVE_PATH => 'optional',                                                   PCLZIP_OPT_REMOVE_ALL_PATH => 'optional',                                                   PCLZIP_OPT_EXTRACT_AS_STRING => 'optional',                                                   PCLZIP_OPT_ADD_PATH => 'optional',                                                   PCLZIP_CB_PRE_EXTRACT => 'optional',                                                   PCLZIP_CB_POST_EXTRACT => 'optional',                                                   PCLZIP_OPT_SET_CHMOD => 'optional' ));        if ($v_result != 1) {          //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);          return 0;        }        // ----- Set the arguments        if (isset($v_options[PCLZIP_OPT_PATH])) {          $v_path = $v_options[PCLZIP_OPT_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];        }        if (isset($v_options[PCLZIP_OPT_ADD_PATH])) {          // ----- Check for '/' in last path char          if ((strlen($v_path) > 0) && (substr($v_path, -1) != '/')) {            $v_path .= '/';          }          $v_path .= $v_options[PCLZIP_OPT_ADD_PATH];        }        if (!isset($v_options[PCLZIP_OPT_EXTRACT_AS_STRING])) {          $v_options[PCLZIP_OPT_EXTRACT_AS_STRING] = FALSE;          //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Option PCLZIP_OPT_EXTRACT_AS_STRING not set.");        }        else {            //--(MAGIC-PclTrace)--//PclTraceFctMessage(__FILE__, __LINE__, 4, "Option PCLZIP_OPT_EXTRACT_AS_STRING set.");        }      }      // ----- 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_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, "index='$p_index', path='$v_path', remove_path='$v_remove_path', remove_all_path='".($v_remove_path?'true':'false')."'");    // ----- Trick    // Here I want to reuse extractByRule(), so I need to parse the $p_index    // with privParseOptions()    $v_arg_trick = array (PCLZIP_OPT_BY_INDEX, $p_index);    $v_options_trick = array();    $v_result = $this->privParseOptions($v_arg_trick, sizeof($v_arg_trick), $v_options_trick,                                        array (PCLZIP_OPT_BY_INDEX => 'optional' ));    if ($v_result != 1) {        //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0);        return 0;    }    $v_options[PCLZIP_OPT_BY_INDEX] = $v_options_trick[PCLZIP_OPT_BY_INDEX];    // ----- Call the extracting fct    if (($v_result = $this->privExtractByRule($p_list, $v_path, $v_remove_path, $v_remove_all_path, $v_options)) < 1) {        //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo());        return(0);    }    // ----- Return    //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, $p_list);    return $p_list;  }  // --------------------------------------------------------------------------------  // --------------------------------------------------------------------------------  // Function :  //   delete([$p_option, $p_option_value, ...])  // Description :  // Parameters :  //   None  // Options :  //   PCLZIP_OPT_BY_INDEX :  // Return Values :  //   0 on failure,  //   The list of the files which are still present in the archive.  //   (see PclZip::listContent() for list entry format)  // --------------------------------------------------------------------------------  function delete(/* options */)  {    //--(MAGIC-PclTrace)--//PclTraceFctStart(__FILE__, __LINE__, "PclZip::delete", "");    $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    $v_options = array();    // ----- 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 no arguments    if ($v_size <= 0) {        // ----- Error log        PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Missing arguments");        // ----- Return        //--(MAGIC-PclTrace)--//PclTraceFctEnd(__FILE__, __LINE__, 0, PclZip::errorInfo());        return 0;    }    // ----- Get the arguments

⌨️ 快捷键说明

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