Activity Stream
48,167 MEMBERS
6829 ONLINE
besthostingforums On YouTube Subscribe to our Newsletter besthostingforums On Twitter besthostingforums On Facebook besthostingforums On facebook groups

Results 1 to 3 of 3
  1.     
    #1
    Member

    Default Rapidleech help! How to unrar file to subfolder?

    Anyone know how to unrar a .rar file according to it subfolder? for example, inside aa.rar, there are 3 folder, a, b and c, I want to unrar files with output 3 subfolder, so the same file name wont be ignored in the process of unrar

    how to edit the rar.php
    Code: 
    <?php 
    
    class rlRar {
      var $filename;
      var $rar_forbidden;
      var $password;
      var $rar_opts;
      var $rar_descriptorspec; 
      var $rar_return;
      var $rar_error;
      var $rar_list;
      var $debug;
      var $rar_exec;
    
      function rlRar($filename, $forbidden_filetypes=array('.xxx')) {
        return $this->__construct($filename, $forbidden_filetypes);
      }
      function __construct($filename, $forbidden_filetypes=array('.xxx')) {
        $this->debug = false;
        $this->filename = trim($filename);
        $this->rar_forbidden = '-x*'.implode($forbidden_filetypes, ' -x*');
        if (is_file(ROOT_DIR.'/rar/rar')) { $this->rar_exec = ROOT_DIR.'/rar/rar'; $return = 'rar'; } 
        elseif (is_file(ROOT_DIR.'/rar/unrar')) { $this->rar_exec = ROOT_DIR.'/rar/unrar'; $return = 'unrar'; }
        else { $return = false; }
        $this->password = '';
        $this->rar_error = '';
        $this->rar_list = FALSE;
        $this->rar_descriptorspec = array(
          0 => array("pipe", "r"),  // stdin is a pipe that the child will read from
          1 => array("pipe", "w"),  // stdout is a pipe that the child will write to
          2 => array("pipe", "w") // stderr is a pipe to write to
        );
        $this->rar_return = $return;
      }
    
      function fix_pass($password = '') {
    //$password fix/check
        $password = ($password == '') ? '' : '-p'.escapeshellarg(stripslashes(($password))).' ';
        return $password;
      }
    
      function check_numeric_opt(&$val, $max, $min=0) {
        $tmp = floor(intval($val));
        if (!is_float($tmp) || $tmp > $max || $tmp < $min) { return false; }
        $val = $tmp;
        return true;
      }
      
      function addtoarchive($rar_opts, $dest_dir, $jsoutid='', $debug_id=0) {
        $return = '';
        $dest_dir = realpath($dest_dir).'/';
        $this->check_numeric_opt($rar_opts['comp_lvl'], 5);
        $this->filename = $dest_dir.basename($this->filename);
        $rar_part_exists = false;
        if ($rar_opts['vols']) {
          $tmp = basename(strtolower($this->filename));
          if (substr(strtolower($tmp), -4) == '.rar') { $tmp = substr($tmp, 0, -4); }
          $tmp .= '.part';
          clearstatcache();
          $rar_dir = opendir(realpath($dest_dir).'/');
          while (false !== ($rar_f_dd = readdir($rar_dir))) {
            $rar_f_dd = basename(strtolower($rar_f_dd));
            if ($tmp == substr($rar_f_dd, 0, strlen($tmp)) && is_numeric(substr($rar_f_dd, strlen($tmp), -4))) {
              $rar_part_exists = true;
              break;
            }
          }
          closedir($rar_dir);
        }
        if (basename($this->filename) != preg_replace("/[^a-z0-9\\040\\.\\-\\_]/i", '', basename($this->filename))) { $return = 'INVALID_RAR_FILENAME'; }
        elseif (basename($this->filename) == '' || basename($this->filename) == '.rar') { $return = 'BAD_RAR_FILENAME'; }
        elseif (!is_dir($dest_dir)) { $return = 'DESTINATION_NOT_EXISTS'; }
        elseif (file_exists($this->filename)) { $return = 'RAR_EXISTS'; }
        elseif ($rar_part_exists) { $return = 'RAR_PART_EXISTS'; }
        elseif ($rar_opts['vols'] && (!$this->check_numeric_opt($rar_opts['vols_s'], 1024, 1) || !$this->check_numeric_opt($rar_opts['vol_sm'], 6))) { $return = 'INVALID_VOLUMES_OPTIONS'; var_export($this->check_numeric_opt($rar_opts['vols_s'], 1024, 1)); }
        elseif ($rar_opts['rec_rec'] && !$this->check_numeric_opt($rar_opts['rec_rec_s'], 10, 1)) { $return = 'INVALID_RECOVERYR_OPTIONS'; }
        else {
          $this->rar_opts = array (
            'comp_lvl' => 0, 'vols' => 0, 'vols_s' => 100, 'vols_sm' => 3, 'delete' => 0, 'solid' => 0, 'rec_rec' => 0,
            'rec_rec_s' => 10, 'test' => 0,'use_pass1' => 0, 'pass' => '', 'use_pass2' => 0, 'path_i' => 0, 'path_i_path' => ''
          );
          $this->rar_opts = array_merge($this->rar_opts, $rar_opts);
          $rar_file_list = '';
          foreach($this->rar_opts['filestorar'] as &$rar_value) {
            $rar_value = basename($GLOBALS['list'][$rar_value]['name']);
            if (empty($rar_value)) { $return = 'BAD_FILE_NAME'; }
            elseif (!is_file($dest_dir.$rar_value)) { $return = 'FILE_NOT_EXISTS:'.$rar_value; }
            else { $rar_file_list .= escapeshellarg($dest_dir.$rar_value).' '; } 
            if ($return !== '') {
              if ($jsoutid !== '') { return '<script type="text/javascript">'."rar_st('".$jsoutid."', '".preg_replace("/\r?\n/", "\\n", addslashes($return))."')</script>\r\n"; }
              return $return;
            }
          }
          if ($rar_file_list == '') { $return = 'NO_FILES_TO_ADD'; }
          else {
            $rar_cmd = 'a -ierr -ep -o- ';
            $rar_cmd .= '-m'.$this->rar_opts['comp_lvl'].' ';
            if ($this->rar_opts['vols']) {
              $vols_sm = array(0=>'b', 1=>'k', 2=>'K', 3=>'m', 4=>'M', 5=>'g', 6=>'G');
              $rar_cmd .= '-v'.$this->rar_opts['vols_s'].$vols_sm[$this->rar_opts['vols_sm']].' ';
            }
            if ($this->rar_opts['delete']) { $rar_cmd .= '-df '; }
            $rar_cmd .= $this->rar_opts['solid'] ? '-s -ds ' : '-s- '; 
            if ($this->rar_opts['rec_rec']) { $rar_cmd .= '-rr'.$this->rar_opts['rec_rec_s'].' '; }
            if ($this->rar_opts['test']) { $rar_cmd .= '-t '; }
            if ($this->rar_opts['use_pass1']) { $password = $this->fix_pass($this->rar_opts['pass']); if ($password != '') {
              $rar_cmd .= $password;
              if ($this->rar_opts['use_pass2']) { $rar_cmd .= '-hp '; }
            } }
            if ($this->rar_opts['path_i']) { $rar_cmd .= '-ap'.escapeshellarg($this->rar_opts['path_i_path']).' '; }
            $this->runit($rar_cmd, $rar_file_list, $jsoutid, $debug_id);
            $return = nl2br("UNKNOWN_ERROR\n".$this->rar_return."\n".htmlentities($this->rar_error));
            if ($this->rar_return == 0) {
              if (strtolower(substr(trim($this->rar_error), -4)) == 'done') { $return = 'Done'; }
            }
            elseif ($this->rar_return == 255) { $return = "USER BREAK"; }
            elseif ($this->rar_return == 9) { $return = "CREATE ERROR"; }
            elseif ($this->rar_return == 8) { $return = "MEMORY ERROR"; }
            elseif ($this->rar_return == 7) { $return = "USER ERROR"; }
            elseif ($this->rar_return == 6) { $return = "OPEN ERROR"; }
            elseif ($this->rar_return == 5) { $return = "WRITE ERROR"; }
            elseif ($this->rar_return == 4) { $return = "LOCKED ARCHIVE"; }
            elseif ($this->rar_return == 3) { $return = "CRC ERROR"; }
          }
        }
        if ($jsoutid !== '') { return '<script type="text/javascript">/* <![CDATA[ */'."rar_st('".$jsoutid."', '".preg_replace("/\r?\n/", "\\n", addslashes($return))."')/* ]]> */</script>\r\n"; }
        return $return;
      }
    
      function listthem($password = '', $dest_dir, $debug_id) {
        $dest_dir = realpath($dest_dir).'/';
        $this->filename = $dest_dir.basename($this->filename);
        $password = $this->fix_pass($password);
        $this->runit('v -v -c- '.$password, '', '', $debug_id);
        $rar_needs_pass = false;
        if (strpos($this->rar_error, 'Enter password') === 0) { return array( 0 => 'PASS', 'NEEDP' => true); }
        if (trim($this->rar_error) !== '') { return array( 0 => 'ERROR', 1 => $this->rar_return, 2 => $this->rar_error, 'NEEDP' => false); }
        $rar_files = array();
        $rar_onlist = false;
        $rar_onfile = true;
        foreach ($this->rar_list as $rar_line) {
          if (strpos($rar_line, "---") === 0) { $rar_onlist = !$rar_onlist; continue; }
          if (!$rar_onlist) { continue; }
          if ($rar_onfile) {
           $rar_tmp_name = substr($rar_line, 1);
           $rar_tmp_pass = substr($rar_line, 0, 1) == '*' ? true : false;
          }
          else {
            $rar_tmp_size = strtok(trim($rar_line), ' ');
            $rar_tmp = strtok(' '); $rar_tmp = strtok(' ');
            $rar_tmp = strtok(' '); $rar_tmp = strtok(' ');
            $rar_tmp = strtok(' ');
            if (strpos(strtolower($rar_tmp), 'd') === false) {
              $rar_files[$rar_tmp_name]['size'] = $rar_tmp_size;
              $rar_needs_pass = $rar_tmp_pass ? true : $rar_needs_pass;
            }
          }
          $rar_onfile = !$rar_onfile;
        }
        if ((count($rar_files) == 0)) { return array( 0 => 'ERROR', 1 => $this->rar_return, 2 => $this->rar_error.' (Empty/bad/non RAR file)', 'NEEDP' => false); }
        return array( 0 => 'LIST', 'NEEDP' => $rar_needs_pass, 2 => $rar_files);
      }
    
      function extract($file=false, $dest, $password='', $jsoutid='', $debug_id=0) {
        $dest = realpath($dest).'/';
        if ($file === false) { $return = 'BAD_FILENAME'; }
        elseif (dirname(realpath($this->filename)) !== dirname($dest.'safe')) { $return = 'RAR_INCORRECT_LOCATION'; }
        elseif (!is_file($this->filename)) { $return = 'RAR_NOT_EXISTS'; }
        elseif (!is_dir($dest)) { $return = 'DESTINATION_NOT_EXISTS'; }
        elseif (file_exists($dest.basename($file))) { $return = 'FILE_EXISTS'; }
        else {
          $password = $this->fix_pass($password);
          $this->runit('e -ierr -o- -c- '.$password, '"'.$file.'" "'.$dest.'"', $jsoutid, $debug_id);
          $return = nl2br("UNKNOWN_ERROR\n".$this->rar_return."\n".htmlentities($this->rar_error));
          if ($this->rar_return == 0) {
            if (strtolower(substr(trim($this->rar_error), -6)) == 'all ok') { $return = 'OK'; }
          }
          elseif ($this->rar_return == 1) {
            if (strpos($this->rar_error, 'Enter password') !== false) { $return = 'PASSWORD_NEEDED'; } 
          }
          elseif ($this->rar_return == 3) {
            if (strpos($this->rar_error, 'password incorrect ?') !== false) { $return = 'PASSWORD_INCORRECT_?'; }
            $return = "CRC_ERROR";
          }
          elseif ($this->rar_return == 255) { $return = "USER BREAK"; }
          elseif ($this->rar_return == 9) { $return = "CREATE ERROR"; }
          elseif ($this->rar_return == 8) { $return = "MEMORY ERROR"; }
          elseif ($this->rar_return == 7) { $return = "USER ERROR"; }
          elseif ($this->rar_return == 6) { $return = "OPEN ERROR"; }
          elseif ($this->rar_return == 5) { $return = "WRITE ERROR"; }
          elseif ($this->rar_return == 4) { $return = "LOCKED ARCHIVE"; }
        }
        if ($jsoutid !== '') { return '<script type="text/javascript">/* <![CDATA[ */'."rar_st('".$jsoutid."', '".preg_replace("/\r?\n/", "\\n", addslashes($return))."')/* ]]> */</script>\r\n"; }
        return $return;
      }
    
      function runit($params, $extra = '', $jsoutid = '', $debug_id = '') {
        $rar_process = proc_open("'".$this->rar_exec."' ".$params.' '.$this->rar_forbidden.' -- '.escapeshellarg($this->filename).' '.$extra, $this->rar_descriptorspec, $rar_pipes);
        if (is_resource($rar_process)) {
          fclose($rar_pipes[0]);
          $this->rar_list = array();
          if ($jsoutid == '') {//don't read this pipe if we getting js extract percentage
            while (!feof($rar_pipes[1])) { 
              $rar_tmp = rtrim(fgets($rar_pipes[1]));
              if (trim($rar_tmp) !== "") { $this->rar_list[] = $rar_tmp; }
            }
          }
          fclose($rar_pipes[1]);
          if ($jsoutid !== '') {
            $this->rar_error = '';
            $last = '';
            $pos_s = 0;
            $pos_last = 0;
            $pos_found_s = '';
            while (!feof($rar_pipes[2])) {
              $this->rar_error .= fgets($rar_pipes[2], 8);
              $pos_s_ = strpos($this->rar_error, 'Adding', $pos_s+1);
              if ($pos_s_ === false) { $pos_s_ = strpos($this->rar_error, 'Testing', $pos_s+1); }
              if ($pos_s_ === false) { $pos_s_ = strpos($this->rar_error, 'Calculating the control sum', $pos_s+1); }
              if ($pos_s_ === false) { $pos_s_ = strpos($this->rar_error, 'Testing archive', $pos_s+1); }
              if ($pos_s_ === false) { $pos_s_ = strpos($this->rar_error, 'Creating archive', $pos_s+1); }
              if ($pos_s_ !== false) { $pos_s = $pos_s_; $pos_found_s = true; }
              $pos = strrpos($this->rar_error, "&#37;", $pos_last + 1);
              if ($pos !== false && $pos_last !== $pos) {
                $pos_last = $pos;
                $num = trim(substr($this->rar_error, $pos - 3, 3));
                if ($num_last !== $num) {
                  $num_last = $num;
                  if ($pos_found_s === true) {
                    $pos_found_s = trim(substr($this->rar_error, $pos_s, strpos($this->rar_error, "%", $pos_s) - $pos_s - 7));
                    $pos_tmp[0] = strpos($pos_found_s, '...');
                    if ($pos_tmp[0] !== false) {
                      $pos_tmp[1] = strpos($pos_found_s, 'Creating archive');
                      if ($pos_tmp[1] === 0) { $pos_found_s = 'Adding     '.trim(substr($pos_found_s, $pos_tmp[0] + 3)); }
                      else {
                        $pos_tmp[1] = strpos($pos_found_s, 'Testing archive');
                        if ($pos_tmp[1] === 0) { $pos_found_s = 'Testing     '.trim(substr($pos_found_s, $pos_tmp[0] + 3)); }
                      }
                    }
                    $pos_tmp[0] = strpos($pos_found_s, 'Adding');
                    if ($pos_tmp[0] === 0) { $pos_found_s = 'Adding     '.basename(substr($pos_found_s, 11)); }
                    $pos_tmp[0] = strpos($pos_found_s, 'Testing');
                    if ($pos_tmp[0] === 0) { $pos_found_s = 'Testing     '.basename(substr($pos_found_s, 12)); }
                    $pos_found_s = str_replace(array("\r\n", "\n", "\r"), '' , $pos_found_s);
                  }
                  echo '<script type="text/javascript">'."rar_st('".$jsoutid."', '".addslashes($pos_found_s).' '.$num_last."%')</script>\r\n";
                  flush();
                  if ($num_last == 100) { $pos_found_s = ''; }
                }
              }
            }
          }
          else {
            $this->rar_error = '';
            while (!feof($rar_pipes[2])) { $this->rar_error .= fread($rar_pipes[2], 8192); }
          }
          $this->rar_error = trim($this->rar_error);
          fclose($rar_pipes[2]);
          $this->rar_return = proc_close($rar_process);
        }
        else {
          $this->rar_error = 'Error openning rar process';
          $this->rar_return = -1;
        }
            if ($this->debug || ($this->rar_return != 0 && strpos($this->rar_error, 'Enter password') !== 0) || 
            ($this->rar_list !== FALSE && strpos($this->rar_list[count($this->rar_list)-1], 'is not RAR archive') !== FALSE)) {
          $rar_es = array(
            array("rar 3.9.3 for Linux", 364604, "049ba7f001aa28eac1419802bf33946d"),
            array("unrar 3.9.3 for Linux", 205328, "27cb85226733ee4e022c2ba8cae78577"),
            array("rar 3.9.3 for Linux x64", 357496, "24be16035099fc2875940a3c467c9248"),
            array("unrar 3.9.3 for Linux x64", 210448, "4f0afbfedfaa7c8294d4a0a34647788d"),
            array("rar 3.9.3 for FreeBSD", 345024, "78257fbf1d4543f1453abda5c1726439"),
            array("unrar 3.9.3 for FreeBSD", 198348, "868cbd181dd6beba0568dc124c9e2063"),
            array("rar_static 3.9.3 for Linux", 949116, "f0145e1f909dbad9343ccd2ae63eb49d"),
            array("rar_static 3.9.3 for Linux x64", 1057072, "604b90df99f6b87770e1000ac3274c5a"),
            array("rar_static 3.9.3 for FreeBSD", 924296, "15a754230ff9bfe5a73814425a1914ca"),
    
            array("rar 3.6.0 for Linux", 329212, "4e320c566c326efaa2e138def8b634fc"),
            array("unrar 3.6.0 for Linux", 192836, "644d426a5cf8f7f3ab874ca3da7f546e"),
            array("rar 3.6.0 for FreeBSD", 308000, "9c4d110fc55e215fc43b092905386c11"),
            array("unrar 3.6.0 for FreeBSD", 181472, "a35ed19eccdb79110af5ad652a2d8705"),
            array("rar_static 3.6.0 for Linux", 850920, "b89de851fd0b371565892b80ecd6ff0b"),
            array("rar_static 3.6.0 for FreeBSD", 778520, "cb7e6a7a7d746764013d8c45ce6fee5d"),
    
            array("rar 3.9.2 for Linux", 364604, "a14b88736ded374e79184b54b5ab5c2b"),
            array("unrar 3.9.2 for Linux", 205328, "b6bc7303367d8f3cef9a87c88b8776a0"),
            array("rar 3.9.2 for Linux x64", 357496, "23f11cab54e26cf8244b0dc83aafefbe"),
            array("unrar 3.9.2 for Linux x64", 210448, "6e2b4a2af3bf75b3ae2e375c0a3f2c2e"),
            array("rar 3.9.2 for FreeBSD", 345024, "40de74f7011ae4d5f81e22417fe3627b"),
            array("unrar 3.9.2 for FreeBSD", 198348, "736c979425a5f2232f6f3b33da4a440e"),
            array("rar_static 3.9.2 for Linux", 949116, "94789a1d2f09b432ff6c0f9f306e2dff"),
            array("rar_static 3.9.2 for Linux x64", 1057072, "9568bf760ae09de60bfe857d44944a2e"),
            array("rar_static 3.9.2 for FreeBSD", 924296, "8047ce2582d243c4e2a171731fa3fd8c"),
    
            array("rar 3.80 for Linux", 348644, "47885148ae497a937e4810d6d4efeecb"),
            array("unrar 3.80 for Linux", 200220, "54f48b9fd64a15e11705fa201c58b2d7"),
            array("rar 3.80 for Linux x64", 339360, "6a2c2081d5efd51794b1035a4f2500cb"),
            array("unrar 3.80 for Linux x64", 201144, "a3f72afb692ff2a22c4fa9efc72f53b7"),
            array("rar 3.80 for FreeBSD", 320424, "456cc650570ed9238cbe10944fd4f108"),
            array("unrar 3.80 for FreeBSD", 184712, "dfdeb22d6a3ec70965f8143d8b877bd5"),
            array("rar_static 3.80 for Linux", 888380, "4c5e212c0de66a74ff9fbcadba99df32"),
            array("rar_static 3.80 for Linux x64", 966536, "8b6ae6251bbf0a3f930a918701bb7e59"),
            array("rar_static 3.80 for FreeBSD", 822516, "3f4673a12c7912c361c1470d9d265ab5"),
    
            array("unrar 3.9.1 for Linux", 205328, "15bd278b2b905834bb8fe079532d0498"),
            array("rar 3.9.1 for Linux", 364580, "07eb62d407d4e6f575354fae0e8e7ea7"),
            array("rar_static 3.9.1 for Linux", 949084, "5ef45c28023d5f56b353ba1201f90103"),
            array("unrar 3.9.1 for Linux x64", 210448, "91bb156dab53dee2be10aeb093b1a678"),
            array("rar 3.9.1 for Linux x64", 357472, "7466ef2effb2724e320c41222d351bfe"),
            array("rar_static 3.9.1 for Linux x64", 1057072, "934cd9022d61ba155e3e2a8a3624cff0"),
            array("unrar 3.9.1 for FreeBSD", 197836, "394517ec69dcf7c635d054c349dc036a"),
            array("rar 3.9.1 for FreeBSD", 344960, "cb8d9d877d54d99672ffab249fea7bae"),
            array("rar_static 3.9.1 for FreeBSD", 923720, "a674de60c0e262099624c6a1d8201ae9"),
    
            array("unrar 3.90 for Linux", 205328, "494f48e37fbdeb5148262db837c7e6bd"),
            array("rar 3.90 for Linux", 364580, "719ac9dc6add5fcf6e6ce7f102c62a63"),
            array("rar_static 3.90 for Linux", 949084, "18e46dadef087241774d960f2a95d584"),
            array("unrar 3.90 for Linux x64", 210448, "a18f3538f7cf5ee105951e4f2fc19eb0"),
            array("rar 3.90 for Linux x64", 357472, "da0e42db1838d4f65f1cbab75b51241b"),
            array("rar_static 3.90 for Linux x64", 1057072, "68ceb739c3cc815d54cdb6f8d76cc81c"),
            array("unrar 3.90 for FreeBSD", 197804, "42569551ec6557b191bb5a6e7f57c4dc"),
            array("rar 3.90 for FreeBSD", 344960, "c2dc606dade7f1c49d1bc6eda0703bce"),
            array("rar_static 3.90 for FreeBSD", 923688, "d1463a8ea6673c0d207eb08c1258ea37"),
    
            array("unrar 3.7.7 for centos", 170252, "b73d067dcf3ea1d23ea264e9ea9fbada"),
          );
          $rarp = array(filesize($this->rar_exec), md5_file($this->rar_exec));
          $tmp = 'Unknown rar executable('.$rarp[0].' bytes md5:'.$rarp[1].')'; 
          foreach($rar_es as $rar_e) {
            if ($rarp[0] == $rar_e[1] && $rarp[1] == $rar_e[2]) {
              $tmp = $rar_e[0];
              break;
            }
          }
    ?>
        <div id="rar_debug<?php echo $debug_id; ?>" style="padding:2px;position:absolute; top:<?php echo (intval($debug_id)*24)+2; ?>px; left:10px; background:#082330; border:2px solid #666666; text-align: left;">
          <b>Plusrar Debug Window<?php echo (!$this->debug ? '('.lang(340).'), ' : '')?></b>&nbsp;&nbsp;&nbsp;&nbsp;<span onclick="javascript:$('#rar_debug_contents<?php echo $debug_id; ?>').toggle();">(<?php echo lang(341); ?>)</span>
          <div id="rar_debug_contents<?php echo $debug_id; ?>" style="display: none">
            <br />
            <textarea cols="100" rows="20" id="rar_debug_text<?php echo $debug_id; ?>">
    <?php
          echo "===plusrar version===\r\n".$GLOBALS['plusrar_v']."\r\n";
          echo "===php_uname===\r\n".php_uname("s").' '.php_uname("r").' '.php_uname("v").' '.php_uname("m")."\r\n";
          echo "===safe_mode===\r\n".(ini_get('safe_mode') ? 'on' : 'off')."\r\n";
          echo "===rar executable info===\r\n".(is_file($this->rar_exec) ? $tmp." with permissions ".substr(sprintf('%o', fileperms($this->rar_exec)), -4) : "rar executable doesn't exists")."\r\n";
          echo "===Return code===\r\n".(str_replace(" ", "&nbsp;", $this->rar_return))."\r\n";
          $tmp = (str_replace(array(' ', '&nbsp;0% - '), array('&nbsp;', '&nbsp;0%'), $this->rar_error));
          $tmp = preg_replace('/\d{1,2}\%\{4}&nbsp;/', '', $tmp);
          $tmp = str_replace('', '', $tmp);
          echo "===Error===\r\n".$tmp."\r\n";
          if (is_array($this->rar_list)) { echo "===List output===\r\n"; foreach ($this->rar_list as $line) { echo str_replace(" ", "&nbsp;", htmlentities($line))."\r\n"; } }
          echo "===Executed command===\r\n".htmlentities("'".$this->rar_exec."' ".$params.' '.$this->rar_forbidden.' -- '.escapeshellarg($this->filename).' '.$extra);
    ?></textarea>
            <br />
            <input type="button" value="<?php echo lang(375); ?>" onclick="javascript:document.getElementById('rar_debug_text<?php echo $debug_id; ?>').focus();document.getElementById('rar_debug_text<?php echo $debug_id; ?>').select();" />
            <div class="dragzone" style="text-align: center;font-weight: bold">&nbsp;<br /><?php echo lang(342); ?><br />&nbsp;</div>
          </div>
      </div>
    <script type="text/javascript">
    /* <![CDATA[ */
    <?php
          if (@$GLOBALS['rar_debug_js'] != 1) {
            $GLOBALS['rar_debug_js'] = 1;
    ?>
    
      var dragObject = null;
      var mouseOffset = null;
      makeDraggable = function(item) {
        if(!item) return false;
        item.onmousedown = function(ev) {
          var el = ev.target || ev.srcElement; if (el.className != 'dragzone') { return true; }
          dragObject = this; mouseOffset = getMouseOffset(this, ev); return false;
        }
        return true;
      };
      getMouseOffset = function(t, e) {e=e||window.event;var dP=getPosition(t); var mP=mouseCoords(e); return {x:mP.x-dP.x,y:mP.y-dP.y};};
      mouseCoords = function(e) {if(e.pageX||e.pageY){return {x:e.pageX,y:e.pageY};}return {x:e.clientX+document.body.scrollLeft-document.body.clientLeft,y:e.clientY+document.body.scrollTop-document.body.clientTop};};
      getPosition = function(e){var l=0; var t=0;while(e.offsetParent){l+=e.offsetLeft;t+= e.offsetTop; e = e.offsetParent; } l += e.offsetLeft; t += e.offsetTop; return {x:l, y:t};};
      mouseMove=function(e){e=e||window.event;var mP=mouseCoords(e);if(dragObject){dragObject.style.position='absolute';dragObject.style.top=mP.y-mouseOffset.y+"px";dragObject.style.left=mP.x-mouseOffset.x+"px";return false;}};
      mouseUp = function() { dragObject = null; };
    
      document.onmousemove = mouseMove;
      document.onmouseup = mouseUp;
    <?php
          }
    ?>
      makeDraggable(document.getElementById('rar_debug<?php echo $debug_id; ?>'));
    /* ]]> */
    </script>
    <?php
        }
      }
    }
    ?>
    cfs5403 Reviewed by cfs5403 on . Rapidleech help! How to unrar file to subfolder? Anyone know how to unrar a .rar file according to it subfolder? for example, inside aa.rar, there are 3 folder, a, b and c, I want to unrar files with output 3 subfolder, so the same file name wont be ignored in the process of unrar how to edit the rar.php <?php class rlRar { var $filename; var $rar_forbidden; var $password; Rating: 5

  2.   Sponsored Links

  3.     
    #2
    Member
    It's not as easy as you think; RapidLeech can't really work with sub-folders so even if you get your files extracted as sub-folders, they'll be useless unless you modify a lot of other files aswell.

    Anyways, if you really want to extract using the full path within the archive, find this inside the extract() function:

    PHP Code: 
    $this->runit('e -ierr -o- -c- '.$password'"'.$file.'" "'.$dest.'"'$jsoutid$debug_id); 
    ...and replace it with:
    PHP Code: 
    $this->runit('x -ierr -o- -c- '.$password'"'.$file.'" "'.$dest.'"'$jsoutid$debug_id); 

  4.     
    #3
    Member
    Thank it work but is there anyway modifed the rapidleech so the folder are viewable?

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. rar unrar in rapidleech
    By Gempis in forum Technical Help Desk Support
    Replies: 21
    Last Post: 21st Nov 2011, 07:56 AM
  2. Config rapidleech rar/unrar >2GB file ?
    By chipve in forum Webmaster Discussion
    Replies: 6
    Last Post: 1st Feb 2011, 11:38 AM
  3. can't unrar on rapidleech
    By leonight in forum Technical Help Desk Support
    Replies: 12
    Last Post: 14th Jan 2011, 02:11 PM
  4. How to unrar in rapidleech..?
    By torrfriend in forum Technical Help Desk Support
    Replies: 1
    Last Post: 26th Dec 2010, 08:36 AM
  5. RapidLeech Unrar
    By Raven in forum Technical Help Desk Support
    Replies: 15
    Last Post: 3rd Jul 2010, 02:49 AM

Tags for this Thread

BE SOCIAL