Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Estensione ZipArchive

  1. #1
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027

    Estensione ZipArchive

    Ciao, mi sono letto questo articolo:

    http://php.html.it/articoli/leggi/20...zip-con-php-5/

    molto interessante, ma anche leggendo php.net non sono riuscito a capire come fare a fare una semplice estrazione di uno zip.

    Ho provato cosi, ma non funziona, ovviamente c'è qualcosa che mi sfugge:

    codice:
    <?php
    require_once('../common_classes/Utils.Class.php');
    
    $dir_dest = 'D:\\www\\tests\\zipphp52\\extracted\\';
    
    if(!is_dir($dir_dest)) {
      mkdir($dir_dest);
    }
    
    $archive = new ZipArchive();
    $zip_file = 'gianiaz.zip';
    
    $archive->open($zip_file);
    
    for ($i=0; $i<$archive->numFiles; $i++) {
    
      $file = $archive->statIndex($i);
    
      if($file['size']) {
        $handle = fopen('zip:///'.$zip_file.'#'.$file['name'], 'r');
        $contents = fread($handle, $file['size']);
        fclose($handle);
        $handle = fopen($dir_dest.basename($file['name']));
        fwrite($handle, $contents);
        fclose($handle);
      }
    
    }
    Ottengo il seguente warning per ogni file:

    Warning: fopen(zip:///gianiaz.zip#Logo_gianiaz.jpg) [function.fopen]: failed to open stream: No such file or directory in D:\www\tests\zipphp52\read.php on line 22


    Lo zip si trova nella stessa directory dello script.

    Forse mi sfugge qualcosa riguardo gli streams... mbho... qualcuno mi aiuta?

    ciao

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027

    Re: Estensione ZipArchive

    Originariamente inviato da gianiaz
    Ciao, mi sono letto questo articolo:

    http://php.html.it/articoli/leggi/20...zip-con-php-5/

    molto interessante, ma anche leggendo php.net non sono riuscito a capire come fare a fare una semplice estrazione di uno zip.

    Ho provato cosi, ma non funziona, ovviamente c'è qualcosa che mi sfugge:

    codice:
    <?php
    require_once('../common_classes/Utils.Class.php');
    
    $dir_dest = 'D:\\www\\tests\\zipphp52\\extracted\\';
    
    if(!is_dir($dir_dest)) {
      mkdir($dir_dest);
    }
    
    $archive = new ZipArchive();
    $zip_file = 'gianiaz.zip';
    
    $archive->open($zip_file);
    
    for ($i=0; $i<$archive->numFiles; $i++) {
    
      $file = $archive->statIndex($i);
    
      if($file['size']) {
        $handle = fopen('zip:///'.$zip_file.'#'.$file['name'], 'r');
        $contents = fread($handle, $file['size']);
        fclose($handle);
        $handle = fopen($dir_dest.basename($file['name']));
        fwrite($handle, $contents);
        fclose($handle);
      }
    
    }
    Ottengo il seguente warning per ogni file:

    Warning: fopen(zip:///gianiaz.zip#Logo_gianiaz.jpg) [function.fopen]: failed to open stream: No such file or directory in D:\www\tests\zipphp52\read.php on line 22


    Lo zip si trova nella stessa directory dello script.

    Forse mi sfugge qualcosa riguardo gli streams... mbho... qualcuno mi aiuta?

    ciao
    come non detto, non avevo visto il metodo extractTo..

    grazie lo stesso

  3. #3
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Un altra cosetta, avrei bisogno per integrare la cosa in un sistema già esistente di estrarre in una cartella unica senza sotto cartelle degli zip che potrebbero contenere delle sotto directory.

    Il metodo extractto sembra non permettere di scegliere la destinazione, o meglio lo permette, ma poi ci accoda sempre il percorso dello zip.

    Qualcuno di voi ha già risolto?

    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.