Projet

Général

Profil

Paste
Statistiques
| Branche: | Révision:

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
?>
Redmine Appliance - Powered by TurnKey Linux