コード例 #1
0
ファイル: Gmanager.php プロジェクト: Halilli/gmanager
 /**
  * gzExtract
  * 
  * @param string $c
  * @param string $name
  * @param array  $chmod
  * @param bool   $overwrite
  * @return string
  */
 public function gzExtract($c = '', $name = '', $chmod = array(), $overwrite = false)
 {
     $this->createDir($name, $chmod[1]);
     $tmp = Config::get('Gmanager', 'mode') == 'FTP' ? $this->ftpArchiveStart($c) : IOWrapper::set($c);
     $info = $this->getGzInfo($tmp);
     $data = null;
     if ($overwrite || !self::$_instance->file_exists($name . '/' . $info['name'])) {
         if (!self::$_instance->file_put_contents($name . '/' . $info['name'], $this->getGzContent($tmp))) {
             $data = Helper_View::message(Language::get('extract_file_false') . '<br/>' . Errors::get(), Helper_View::MESSAGE_ERROR_EMAIL);
         }
     } else {
         $data = Helper_View::message(Language::get('overwrite_false') . ' (' . htmlspecialchars($name . '/' . $info['name'], ENT_NOQUOTES) . ')', Helper_View::MESSAGE_ERROR);
     }
     if (Config::get('Gmanager', 'mode') == 'FTP') {
         $this->ftpArchiveEnd();
     }
     if ($data) {
         return $data;
     }
     if (self::$_instance->is_file($name . '/' . $info['name'])) {
         if ($chmod[0]) {
             $this->rechmod($name . '/' . $info['name'], $chmod[0]);
         }
         return Helper_View::message(Language::get('extract_file_true'), Helper_View::MESSAGE_SUCCESS);
     } else {
         return Helper_View::message(Language::get('extract_file_false'), Helper_View::MESSAGE_ERROR_EMAIL);
     }
 }