You are here

class PHPExcel_Shared_ZipArchive in Loft Data Grids 7.2

Same name and namespace in other branches
  1. 6.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/ZipArchive.php \PHPExcel_Shared_ZipArchive

PHPExcel_Shared_ZipArchive

@category PHPExcel @package PHPExcel_Shared_ZipArchive @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)

Hierarchy

Expanded class hierarchy of PHPExcel_Shared_ZipArchive

File

vendor/phpoffice/phpexcel/Classes/PHPExcel/Shared/ZipArchive.php, line 41

View source
class PHPExcel_Shared_ZipArchive {

  /**	constants */
  const OVERWRITE = 'OVERWRITE';
  const CREATE = 'CREATE';

  /**
   * Temporary storage directory
   *
   * @var string
   */
  private $_tempDir;

  /**
   * Zip Archive Stream Handle
   *
   * @var string
   */
  private $_zip;

  /**
   * Open a new zip archive
   *
   * @param	string	$fileName	Filename for the zip archive
   * @return	boolean
   */
  public function open($fileName) {
    $this->_tempDir = PHPExcel_Shared_File::sys_get_temp_dir();
    $this->_zip = new PclZip($fileName);
    return true;
  }

  /**
   * Close this zip archive
   *
   */
  public function close() {
  }

  /**
   * Add a new file to the zip archive from a string of raw data.
   *
   * @param	string	$localname		Directory/Name of the file to add to the zip archive
   * @param	string	$contents		String of data to add to the zip archive
   */
  public function addFromString($localname, $contents) {
    $filenameParts = pathinfo($localname);
    $handle = fopen($this->_tempDir . '/' . $filenameParts["basename"], "wb");
    fwrite($handle, $contents);
    fclose($handle);
    $res = $this->_zip
      ->add($this->_tempDir . '/' . $filenameParts["basename"], PCLZIP_OPT_REMOVE_PATH, $this->_tempDir, PCLZIP_OPT_ADD_PATH, $filenameParts["dirname"]);
    if ($res == 0) {
      throw new PHPExcel_Writer_Exception("Error zipping files : " . $this->_zip
        ->errorInfo(true));
    }
    unlink($this->_tempDir . '/' . $filenameParts["basename"]);
  }

  /**
   * Find if given fileName exist in archive (Emulate ZipArchive locateName())
   *
   * @param        string        $fileName        Filename for the file in zip archive
   * @return        boolean
   */
  public function locateName($fileName) {
    $list = $this->_zip
      ->listContent();
    $listCount = count($list);
    $list_index = -1;
    for ($i = 0; $i < $listCount; ++$i) {
      if (strtolower($list[$i]["filename"]) == strtolower($fileName) || strtolower($list[$i]["stored_filename"]) == strtolower($fileName)) {
        $list_index = $i;
        break;
      }
    }
    return $list_index > -1;
  }

  /**
   * Extract file from archive by given fileName (Emulate ZipArchive getFromName())
   *
   * @param        string        $fileName        Filename for the file in zip archive
   * @return        string  $contents        File string contents
   */
  public function getFromName($fileName) {
    $list = $this->_zip
      ->listContent();
    $listCount = count($list);
    $list_index = -1;
    for ($i = 0; $i < $listCount; ++$i) {
      if (strtolower($list[$i]["filename"]) == strtolower($fileName) || strtolower($list[$i]["stored_filename"]) == strtolower($fileName)) {
        $list_index = $i;
        break;
      }
    }
    $extracted = "";
    if ($list_index != -1) {
      $extracted = $this->_zip
        ->extractByIndex($list_index, PCLZIP_OPT_EXTRACT_AS_STRING);
    }
    else {
      $filename = substr($fileName, 1);
      $list_index = -1;
      for ($i = 0; $i < $listCount; ++$i) {
        if (strtolower($list[$i]["filename"]) == strtolower($fileName) || strtolower($list[$i]["stored_filename"]) == strtolower($fileName)) {
          $list_index = $i;
          break;
        }
      }
      $extracted = $this->_zip
        ->extractByIndex($list_index, PCLZIP_OPT_EXTRACT_AS_STRING);
    }
    if (is_array($extracted) && $extracted != 0) {
      $contents = $extracted[0]["content"];
    }
    return $contents;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
PHPExcel_Shared_ZipArchive::$_tempDir private property * Temporary storage directory * *
PHPExcel_Shared_ZipArchive::$_zip private property * Zip Archive Stream Handle * *
PHPExcel_Shared_ZipArchive::addFromString public function * Add a new file to the zip archive from a string of raw data. * *
PHPExcel_Shared_ZipArchive::close public function * Close this zip archive *
PHPExcel_Shared_ZipArchive::CREATE constant
PHPExcel_Shared_ZipArchive::getFromName public function Extract file from archive by given fileName (Emulate ZipArchive getFromName())
PHPExcel_Shared_ZipArchive::locateName public function Find if given fileName exist in archive (Emulate ZipArchive locateName())
PHPExcel_Shared_ZipArchive::open public function * Open a new zip archive * *
PHPExcel_Shared_ZipArchive::OVERWRITE constant constants