/** * 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; }