1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/dolibarr_ynh.git synced 2024-09-03 18:35:53 +02:00
dolibarr_ynh/sources/dolibarr/htdocs/includes/odtphp/zip/PhpZipProxy.php

92 lines
2.5 KiB
PHP
Raw Normal View History

2015-09-28 22:09:38 +02:00
<?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 http://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();
}
}
?>