コード例 #1
0
 /**
  * Create archive using php function and return the path
  *
  * @param  string  $dir    target dir
  * @param  array   $files  files names list
  * @param  string  $name   archive name
  * @param  array   $arc    archiver options
  * @return string|bool
  */
 protected function PhpCompress($dir, $files, $name, $archiver)
 {
     @ini_set('memory_limit', '256M');
     $path = $this->_joinPath($dir, $name);
     //format the list
     $list = array();
     foreach ($files as $file) {
         $list[] = $this->_joinPath($dir, $file);
     }
     // create archive object
     switch ($archiver['ext']) {
         case 'zip':
             include 'pclzip.lib.php';
             $archive = new PclZip($path);
             if (!$archive->Create($list, '', $dir)) {
                 return $this->SetError('errArchive');
             }
             break;
         case 'tgz':
         case 'tbz':
         case 'tar':
             include 'Archive_Tar.php';
             $archive = new Archive_Tar($path);
             if (!$archive->createModify($list, '', $dir)) {
                 return $this->SetError('errArchive');
             }
             break;
     }
     return $path;
 }