2009-12-02 14 views

Respuesta

25

Actualmente no es posible, según el open bug report feature request on php.net.

+8

+1 para el tachado – Drew

+1

Por si acaso alguien todavía está buscando, esta funcionalidad aún no parece estar implementada en el ZipArchive de PHP Core (a partir de mediados de 2012). Planeo usar [system()] (http://php.net/manual/en/function.system.php) y "zip -rn .jpg: .gif: .png images images", pero esto puede no ser ideal para todas las situaciones. – thirdender

+0

me pregunto si realmente es tan difícil agregar la función y/o corregir el error. ¿No podría esto ser hecho por una sola persona en pocos días? –

7

Como se indicó en la publicación anterior, no se puede hacer con Zip. Si se especifica un nivel de compresión es más importante que el método de archivo, entonces PHP zlib lo permite:

string gzcompress (string $data [, int $level = -1 ]) 

nivel $ - El nivel de compresión. Se puede dar como 0 para ninguna compresión hasta 9 para una compresión máxima.

http://php.net/manual/en/book.zlib.php

2

De hecho, no es posible evenin 2014 así que tuve que utilizar la función de "ejecutivo" con el comando postal para Linux:

exec("cd \"".$the_directory_you want_to_zip."\" && zip -0 -r \"".$path_zip."\" ."); 
2

Parece que se han aplicado/añadido a la redistribución archivos en PHP 7: ZipArchive::setCompressionName y ZipArchive::setCompressionIndex. No probado.

PD: La razón por la que se establece individualmente para los archivos y no para todo el archivo es porque los archivos dentro de un archivo ZIP son en realidad los mismos archivos ZIP y simplemente se "pegan" en un "archivo ZIP principal".

Cuestiones relacionadas