Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/08/2007, 15h55   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 60
Points : 13
Points : 13
Par défaut [Zip] Classe ZipArchive non trouvée

Bonjour à tous!!

Voila : j'utilise un serveur WAMP5 avec php version 5.2.3

Je souhaite pouvoir extraire un dossier zip envoyé sur mon serveur via php. J'utilise alors ceci :

Code :
1
2
3
4
5
6
7
 
$zip = new ZipArchive();
if ($zip->open('test.zip') !== TRUE) {
    die("Echec lors de l'ouverture de l'archive");
}
$zip->extractTo('http://localhost/cartes/testzip') or die("Erreur rencontrée lors de l'extraction de l'archive");
$zip->close() or die("Erreur lors de la fermeture de l'archive");
Lorsque je lance ce script, il me met :

Citation:

Fatal error: Class 'ZipArchive' not found in C:\wamp\www\cartes\testdezip2.php on line 3
Or dans php.ini (celui du répertoire php et aussi celui de apache2) l'extension extension=php_zip.dll est bien décommentée...

merci de votre aide

laeti
laetiheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 18h39   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par laetiheu
Or dans php.ini (celui du répertoire php et aussi celui de apache2) l'extension extension=php_zip.dll est bien décommentée...
Si tel est le cas elle doit apparaître dans la sortie du phpinfo.

Citation:
Envoyé par laetiheu
Code :
$zip->extractTo('http://localhost/cartes/testzip') or die("Erreur rencontrée lors de l'extraction de l'archive");
Cette ligne ne fonctionnera jamais : le protocole HTTP n'est pas géré en écriture, tout du moins en PHP et dans ce cas.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 09h01   #3
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 60
Points : 13
Points : 13
Bonjour à tous!!

Citation:
Envoyé par julp Voir le message
Si tel est le cas elle doit apparaître dans la sortie du phpinfo.
Ok mais c'est où exactement dans le phpinfo...? parce que à la fin j'ai bien la rubrique concernant zlib :

Citation:
zlib
ZLib Support enabled
Stream Wrapper support compress.zlib://
Stream Filter support zlib.inflate, zlib.deflate
Compiled Version 1.2.3
Linked Version 1.2.3

Directive Local Value Master Value
zlib.output_compression On On
zlib.output_compression_level -1 -1
zlib.output_handler no value no value


zlib_filter
zlib_filter support zlib.inflate, zlib.deflate
Citation:
Envoyé par julp Voir le message
Cette ligne ne fonctionnera jamais : le protocole HTTP n'est pas géré en écriture, tout du moins en PHP et dans ce cas.
C'est bon alors ca...?

Code :
1
2
3
4
5
6
7
8
 
 
$zip = new ZipArchive();
if ($zip->open('test.zip') !== TRUE) {
    die("Echec lors de l'ouverture de l'archive");
}
$zip->extractTo('../cartes/testzip') or die("Erreur rencontrée lors de l'extraction de l'archive");
$zip->close() or die("Erreur lors de la fermeture de l'archive");
ptit question qui va vous paraitre bete, mais lorsque l'on télécharge la librairie Pclzip, on le met où après ce fichier...?

et est ce que ce script est correct...?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
 
function convertsize($size){
 
   $times = 0;
   $comma = '.';
   while ($size>1024){
      $times++;
      $size = $size/1024;
   }
   $size2 = floor($size);
   $rest = $size - $size2;
   $rest = $rest * 100;
   $decimal = floor($rest);
 
   $addsize = $decimal;
   if ($decimal<10) {$addsize .= '0';};
 
   if ($times == 0){
      $addsize=$size2;
   }else{
      $addsize=$size2.$comma.substr($addsize,0,2);
   }
 
   switch ($times) {
     case 0 : $mega = ' bites'; break;
     case 1 : $mega = ' Kb'; break;
     case 2 : $mega = ' Mb'; break;
     case 3 : $mega = ' Gb'; break;
     case 4 : $mega = ' Tb'; break;
   }
 
   $addsize .= $mega;
 
   return $addsize;
}
 
 
    $ok=false;
    $ffpath = "../cartes/testzip/test.zip";
    echo "<p>Fichier à dézipper: <b>$ffpath</b></p><br><p>";
         include ('pclzip.lib.php');
      if (preg_match("/(.zip)$/", $ffpath) && is_file($ffpath)){
         $zip = new PclZip($ffpath);
         if (($list = $zip->listContent()) == 0) {die("Error : ".$zip->errorInfo(true));  }
         $basedir = $dirpath;
         //Statistiques...
         for ($i=0; $i<sizeof($list); $i++) {
            if ($list[$i][folder]=='1') {
               $fold++;
               $dirs[$fold] = $list[$i][stored_filename];
                  $dirname = $list[$i][stored_filename];
                  $dirname = substr($dirname,0,strlen($dirname)-1);
            }else{
               $fil++;
            }
            $tot_comp += $list[$i][compressed_size];
            $tot_uncomp += $list[$i][size];
         }
 
      echo "<p>$fil fichiers et $fold dossiers<br>\n";
      echo "Taille du fichier décompressé : ".convertsize($tot_comp)."<br>\n";
      echo "Taille initial du fichier zip : ".convertsize($tot_uncomp)."<br>\n";
      chdir($basedir);
      $ok= $zip->extract('');
         if(!$ok) {
            echo "$lang[84]<br>\n";
           }else{
            echo "$lang[85]<br>\n";
            if($chkdelzip=='yes') {unlink($ffpath);echo "<p>Dizzipage <b>$ffpath</b> réussi</p>";}
         }
      }else{
         echo "Pas de Fichier Zip!";
      }
merci

laeti
laetiheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 09h44   #4
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 60
Points : 13
Points : 13
C'est bon tout fonctionne j'ai simplement recopier le fichier PclZip dans mon fichier d'extraction zip et enlevé le include de ce fichier...

merci quand meme pour votre aide!

laeti
laetiheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 10h57   #5
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Pour informations, puisque vous avez changé votre fusil d'épaule

Citation:
Envoyé par laetiheu
Ok mais c'est où exactement dans le phpinfo...? parce que à la fin j'ai bien la rubrique concernant zlib
L'extension PHP Zlib n'a rien à voir avec l'extension PHP Zip. Cette dernière figurerait dans votre phpinfo sous le nom de zip :
Citation:
zip
Zip enabled
Extension Version $Id: php_zip.c,v 1.1.2.31 2007/03/14 15:02:20 iliaa Exp $
Zip version 2.0.0
Libzip version 0.7.1
(bien que l'extension Zip utilise la librairie - et non extension - Zlib).

Citation:
Envoyé par laetiheu
C'est bon alors ca...?
C'est déjà plus correct

Pour le reste je crois que vous avez entre temps trouvé les réponses que vous cherchiez
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 10h59   #6
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 60
Points : 13
Points : 13
Oui merci encore !!
laetiheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h48.


 
 
 
 
Partenaires

Hébergement Web