ryxeo-glpi-git / htdocs / epack / lib / zip / PhpZipProxy.php @ 1c14bcc4
Historique | Voir | Annoter | Télécharger (2,77 ko)
1 |
<?php
|
---|---|
2 |
require_once 'ZipInterface.php'; |
3 |
class PhpZipProxyException extends Exception |
4 |
{ } |
5 |
/**
|
6 |
* Proxy class for the PHP Zip Extension
|
7 |
* You need PHP 5.2 at least
|
8 |
* You need Zip Extension or PclZip library
|
9 |
* Encoding : ISO-8859-1
|
10 |
* Last commit by $Author: neveldo $
|
11 |
* Date - $Date: 2009-05-29 10:05:11 +0200 (ven., 29 mai 2009) $
|
12 |
* SVN Revision - $Rev: 28 $
|
13 |
* Id : $Id: odf.php 28 2009-05-29 08:05:11Z neveldo $
|
14 |
*
|
15 |
* @copyright GPL License 2008 - Julien Pauli - Cyril PIERRE de GEYER - Anaska (http://www.anaska.com)
|
16 |
* @license http://www.gnu.org/copyleft/gpl.html GPL License
|
17 |
* @version 1.3
|
18 |
*/
|
19 |
|
20 |
class PhpZipProxy implements ZipInterface |
21 |
{ |
22 |
protected $zipArchive; |
23 |
protected $filename; |
24 |
/**
|
25 |
* Constructeur de classe
|
26 |
*
|
27 |
* @throws PhpZipProxyException
|
28 |
*/
|
29 |
public function __construct() |
30 |
{ |
31 |
if (! class_exists('ZipArchive')) { |
32 |
throw new PhpZipProxyException('Zip extension not loaded - check your php settings, PHP5.2 minimum with zip extension |
33 |
is required for using PhpZipProxy'); ;
|
34 |
} |
35 |
$this->zipArchive = new ZipArchive(); |
36 |
} |
37 |
/**
|
38 |
* Ouvrir une archive au format Zip
|
39 |
*
|
40 |
* @param string $filename le nom de l'archive à ouvrir
|
41 |
* @return true si l'ouverture à réussi
|
42 |
*/
|
43 |
public function open($filename) |
44 |
{ |
45 |
$this->filename = $filename; |
46 |
return $this->zipArchive->open($filename, ZIPARCHIVE::CREATE); |
47 |
} |
48 |
/**
|
49 |
* Récupérer le contenu d'un fichier de l'archive à partir de son nom
|
50 |
*
|
51 |
* @param string $name le nom du fichier à extraire
|
52 |
* @return le contenu du fichier dans une chaine de caractères
|
53 |
*/
|
54 |
public function getFromName($name) |
55 |
{ |
56 |
return $this->zipArchive->getFromName($name); |
57 |
} |
58 |
/**
|
59 |
* Ajouter un fichier à l'archive à partir d'une chaine de caractères
|
60 |
*
|
61 |
* @param string $localname le chemin local du fichier dans l'archive
|
62 |
* @param string $contents le contenu du fichier
|
63 |
* @return true si le fichier a été ajouté avec succès
|
64 |
*/
|
65 |
public function addFromString($localname, $contents) |
66 |
{ |
67 |
if (file_exists($this->filename) && !is_writable($this->filename)) { |
68 |
return false; |
69 |
} |
70 |
return $this->zipArchive->addFromString($localname, $contents); |
71 |
} |
72 |
/**
|
73 |
* Ajouter un fichier à l'archive à partir d'un fichier
|
74 |
*
|
75 |
* @param string $filename le chemin vers le fichier à ajouter
|
76 |
* @param string $localname le chemin local du fichier dans l'archive
|
77 |
* @return true si le fichier a été ajouté avec succès
|
78 |
*/
|
79 |
public function addFile($filename, $localname = null) |
80 |
{ |
81 |
if (file_exists($this->filename) && !is_writable($this->filename)) { |
82 |
return false; |
83 |
} |
84 |
return $this->zipArchive->addFile($filename, $localname); |
85 |
} |
86 |
/**
|
87 |
* ferme l'archive Zip
|
88 |
* @return true
|
89 |
*/
|
90 |
public function close() |
91 |
{ |
92 |
return $this->zipArchive->close(); |
93 |
} |
94 |
} |
95 |
?>
|