Breaking

Post Top Ad

Your Ad Spot

domingo, 10 de marzo de 2019

Extraer archivo ZIP usando PHP


Los archivos de archivo se utilizan para la compresión de datos. El ZIP, Gzip y RAR son el formato de archivo más utilizado para archivar archivos. En general, usamos el software de la computadora para extraer archivos (ZIP, Gzip, RAR, etc.). Pero, el archivo de archivo también se puede extraer sobre la marcha utilizando PHP. Puede crear fácilmente el archivo ZIP y extraer el archivo ZIP de la secuencia de comandos con PHP.
La clase ZipArchive proporciona una manera fácil de extraer el contenido del archivo en PHP. Puede extraer el archivo ZIP en el servidor usando ZipArchive en PHP. En este tutorial, le mostraremos cómo extraer el archivo ZIP en PHP . No solo el archivo ZIP, sino también los otros archivos comprimidos (GZIP y RAR) se pueden extraer en PHP usando nuestros fragmentos de código de ejemplo.
Para simplificar el proceso de extracción del archivo, hemos agrupado todo el código en una clase de PHP, llamado Extractor. Esta clase proporciona una manera instantánea y estructurada de implementar la funcionalidad de extracción de archivos en PHP.

Clase de extractor

La clase Extractor ayuda a extraer el archivo de archivado (zip / gzip / rar) en el servidor usando PHP ZipArchive.
  • extraer () : esta función verifica la extensión del archivo dado y llama a la función extractora adecuada.
    • $archive - Ruta relativa del archivo que se va a extraer.
    • $destination - La ubicación donde extraer los archivos.
  • extractZipArchive () - Es una función auxiliar de la clase Extractor. Esta función descomprime o extrae un archivo comprimido ZIP (.zip) utilizando ZipArchive en PHP.
  • extractGzipFile () : es una función auxiliar de la clase Extractor. Esta función descomprime o extrae un archivo comprimido Gzip (.gz) usando gzread () en PHP.
  • extractRarArchive () : es una función auxiliar de la clase Extractor. Esta función descomprime o extrae un archivo comprimido RAR (.rar) utilizando RarArchive en PHP.
<? php / ** 
 * Extractor de clase 
 * 
 * Extraer un archivo de archivo (zip / gzip / rar). 
 *  
 * @author CodexWorld 
 * @url https://www.codexworld.com 
 *  
 * / class  Extractor  { 

    / ** 
     * Comprueba la extensión de archivo y llama a las funciones de extractor adecuadas. 
     * 
     * @param $ archive 
     * @param $ destino 
     * / 
    extracto de función estática pública  ( $ archivo $ destino ) { $ ext  pathinfo ( $ archivo PATHINFO_EXTENSION );         interruptor
        
$ ext ) { 
            case  'zip' : 
                $ res  self :: extractZipArchive ( $ archive $ destination ); 
                descanso; 
            caso  'gz' :
 
                $ res  self :: extractGzipFile ( $ archive $ destino ); 
                descanso; 
            caso  'rar' :
 
                $ res  self :: extractRarArchive ( $ archive $ destino );
                descanso; 
        }
 
        devuelve  $ res ; 
    } 
    
    / ** 
     * Descomprime / extrae un archivo zip usando ZipArchive. 
     * 
     * @param $ archive 
     * @param $ destino 
     * / 
    public static function  extractZipArchive ( $ archivo $ destino ) { 
        // Compruebe si el servidor web admite la descompresión. 
        if (! class_exists ( 'ZipArchive' )) { 
            $ GLOBALS [ 'status' ] = array ( 'error'  =>  'Su versión de PHP no admite la funcionalidad de descompresión.' );
            volver  falsa ; 
        } 
    
        $ zip  = nuevo  ZipArchive ; 
    
        // Verificar si el archivo es legible. 
        si ( $ zip -> abierto ( $ archivo ) ===  TRUE ) { 
            // Comprobar si el destino se puede escribir 
            si ( is_writeable ( $ destino  '/' {)) 
                $ zip -> extractTo ( $ destino ); 
                $ zip -> close (); 
                $ GLOBALS [ 'status' ] = array ( 'success'  => 'Archivos descomprimidos con éxito' ); 
                volver  verdadera ; 
            } else { 
                $ GLOBALS [ 'status' ] = array ( 'error'  =>  'Directory no se puede escribir en el servidor web.' ); 
                volver  falsa ; 
            } 
        } else else { 
            $ GLOBALS [ 'status' ] = array ( 'error'  =>  'Imposible leer el archivo .zip.' ); 
            volver  falsa ; 
        } 
    } 
    
    / ** 
     * Descomprime un archivo .gz.


     * @param $ destination 
     * / 
    public static function  extractGzipFile ( $ archive $ destination ) { 
        // Compruebe si zlib está habilitado 
        si (! function_exists ( 'gzopen' )) { 
            $ GLOBALS [ 'status' ] = array ( 'error'  =>  'Error: Su PHP no tiene habilitado el soporte de zlib.' ); 
            volver  falsa ; 
        } 
    
        $ filename  pathinfo ( $ archive PATHINFO_FILENAME ); 
        $ gzipped  gzopen ($ archivo "rb" );

        $ archivo  fopen ( $ nombre de archivo "w" ); 
    
        while ( $ string  gzread ( $ gzipped 4096 )) { 
            fwrite ( $ file $ string strlen ( $ string )); 
        } 
        gzclose ( $ gzipped );

        fclose ( $ file ); 
    
        // Verificar si el archivo fue extraído. 
        si ( file_exists ( $ destino . '/'. $ nombre de archivo )) { 
            $ GLOBALS [ 'status' ] = array ( 'success'  =>  'File descomprimido con éxito.' ); 
            volver  verdadera ; 
        } else { 
            $ GLOBALS [ 'status' ] = array ( 'error'  =>  'Error al descomprimir el archivo.' ); 
            volver  falsa ; 
        } 
    } 
    
    / ** 
     * Descomprimir / extraer un archivo Rar utilizando RarArchive.




    ( $ archive $ destino ) { 
        // Compruebe si el servidor web admite descomprimir. 
        if (! class_exists ( 'RarArchive' )) { 
            $ GLOBALS [ 'status' ] = array ( 'error'  =>  'Su versión de PHP no admite la funcionalidad de archivo .rar.' ); 
            volver  falsa ; 
        } 
        // Comprueba si el archivo es legible. 
        si ( $ rar  RarArchive :: abierta ( $ archivo )) {
 
            // Comprobar si el destino se puede escribir 
            si ( is_writeable ($ destino  '/' )) { 
                $ entries  $ rar -> getEntries (); 
                foreach ( $ entradas  como  $ entrada ) { 
                    $ entrada -> extraer ( $ destino ); 
                } 
                $ rar -> close (); 
                $ GLOBALS [ 'status' ] = array ( 'success'  =>  'Archivo extraído exitosamente.' ); 
                volver  verdadera ; 
            } else { 
                $ GLOBALS [ 'status' ] = array ('error'  =>  'Directorio no se puede escribir en el servidor web.' ); 
                volver  falsa ; 
            } 
        } else else { 
            $ GLOBALS [ 'status' ] = array ( 'error'  =>  'Imposible leer el archivo .rar.' ); 
            volver  falsa ; 
        } 
    } 
    
}

Extraer ZIP en PHP

Use la clase Extractor para extraer archivos de archivo (ZIP, GZIP y RAR) al destino especificado usando PHP.
  • Incluir e inicializar la clase Extractor.
  • Especifique la ruta del archivo comprimido (ZIP / Gzip / RAR) que desea extraer.
  • Especifique el destino para extraer el archivo ZIP en el servidor.
  • Llame a la función extract () de la clase Extractor.
// Incluir e inicializar la clase Extractor require_once  'Extractor.class.php' ; $ extractor  = new  Extractor ; 
// Ruta del archivo comprimido $ archivePath  '/path/to/archive.zip' ; 
// Ruta de destino $ destPath  '/ destination / dir /' ; 
// Extraer archivo de archivo $ extract  $ extractor -> extract ( $ archivePath $ destPath ); 

if ( $ extracto ) { 
    echo  $ GLOBALS [ 'status' ] [ 'success' ];
} else { 
    echo  $ GLOBALS [ 'status' ] [ 'error' ]; 
}

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Post Top Ad

Your Ad Spot

Páginas