| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?php
- require_once 'ZipInterface.php';
- class PhpZipProxyException extends Exception
- { }
- /**
- * Proxy class for the PHP Zip Extension
- * You need PHP 5.2 at least
- * You need Zip Extension or PclZip library
- * Encoding : ISO-8859-1
- *
- * @copyright GPL License 2008 - Julien Pauli - Cyril PIERRE de GEYER - Anaska (http://www.anaska.com)
- * @license https://www.gnu.org/copyleft/gpl.html GPL License
- * @version 1.3
- */
- class PhpZipProxy implements ZipInterface
- {
- protected $zipArchive;
- protected $filename;
- /**
- * Class constructor
- *
- * @throws PhpZipProxyException
- */
- public function __construct()
- {
- if (! class_exists('ZipArchive')) {
- throw new PhpZipProxyException('Zip extension not loaded - check your php settings, PHP5.2 minimum with zip extension
- is required for using PhpZipProxy'); ;
- }
- $this->zipArchive = new ZipArchive();
- }
- /**
- * Open a Zip archive
- *
- * @param string $filename the name of the archive to open
- * @return true if openning has succeeded
- */
- public function open($filename)
- {
- $this->filename = $filename;
- return $this->zipArchive->open($filename, ZIPARCHIVE::CREATE);
- }
- /**
- * Retrieve the content of a file within the archive from its name
- *
- * @param string $name the name of the file to extract
- * @return the content of the file in a string
- */
- public function getFromName($name)
- {
- return $this->zipArchive->getFromName($name);
- }
- /**
- * Add a file within the archive from a string
- *
- * @param string $localname the local path to the file in the archive
- * @param string $contents the content of the file
- * @return true if the file has been successful added
- */
- public function addFromString($localname, $contents)
- {
- if (file_exists($this->filename) && !is_writable($this->filename)) {
- return false;
- }
- return $this->zipArchive->addFromString($localname, $contents);
- }
- /**
- * Add a file within the archive from a file
- *
- * @param string $filename the path to the file we want to add
- * @param string $localname the local path to the file in the archive
- * @return true if the file has been successful added
- */
- public function addFile($filename, $localname = null)
- {
- if ((file_exists($this->filename) && !is_writable($this->filename))
- || !file_exists($filename)) {
- return false;
- }
- return $this->zipArchive->addFile($filename, $localname);
- }
- /**
- * Close the Zip archive
- * @return true
- */
- public function close()
- {
- return $this->zipArchive->close();
- }
- }
- ?>
|