IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[Zip] Classe ZipArchive non trouvée


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 60
    Points : 30
    Points
    30
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :


    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

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $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.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 60
    Points : 30
    Points
    30
    Par défaut
    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 :

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 60
    Points : 30
    Points
    30
    Par défaut
    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

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    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 :
    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

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 60
    Points : 30
    Points
    30
    Par défaut
    Oui merci encore !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. EClassNotFound Classe TButton non trouvée
    Par James_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 20/07/2009, 15h07
  2. Class 'Zend_Db_Table' non trouvée
    Par yveslens dans le forum Zend_Db
    Réponses: 6
    Dernier message: 12/10/2007, 14h54
  3. [Zip] Class ZipArchive not found
    Par Sayrus dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 07/06/2007, 16h04
  4. Erreur : Classe TStoredProc non trouvée
    Par Sunchaser dans le forum C++Builder
    Réponses: 1
    Dernier message: 24/11/2006, 00h03
  5. Tomcat et classe personnel non trouvée.
    Par swirtel dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 15/02/2005, 14h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo