¿Es posible cambiar el nivel de compresión y/o el método utilizado por la clase ZipArchive
?¿Puedo cambiar el nivel de compresión de ZipArchive?
Respuesta
Actualmente no es posible, según el open
bug report
feature request on php.net.
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.
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."\" .");
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".
- 1. Configuración del nivel de compresión IIS7 gzip
- 2. ¿Cómo puedo cambiar el nivel de registro de hibernación?
- 3. cambiar el nivel de prioridad en Log4J
- 4. Compilación de ZipArchive en el proyecto XCode 4
- 5. Configuración de permisos en ZipArchive
- 6. archivo de sobreescritura en ZipArchive
- 7. Habilitar ZipArchive en localhost
- 8. Cómo cambiar el nivel de registro de raíz mediante programación
- 9. Cambiar el nivel de registro de log4net programáticamente
- 10. ZipArchive compilación biblioteca error
- 11. Error al cambiar el nivel de la API de Android?
- 12. ¿Cómo cambiar el nivel de zoom de Google Maps programáticamente?
- 13. Cómo cambiar el nivel de registro de dev_appserver
- 14. ¿Cómo puedo cambiar el NIVEL DE AISLAMIENTO DE TRANSACCIÓN predeterminado en SQL Server 2005?
- 15. ¿Cambiar el nivel de registro mediante programación en log4net?
- 16. ¿Puedo cambiar el algoritmo de compresión utilizado por el ImageWriter de Java al crear un archivo JPEG?
- 17. Cómo cambiar el nivel de registro en Sinatra
- 18. Establecer nivel de compresión al generar un archivo ZIP usando RubyZip
- 19. En el motor de la aplicación de Google, ¿cómo puedo cambiar el nivel de registro predeterminado de dev_appserver.py?
- 20. ¿Cómo puedo hacer que funcione la compresión gzip en IIS7?
- 21. compresión de conexión Oracle?
- 22. Configuración de la compresión gzip en asp.net
- 23. Flume agent: ¿puedo especificar compresión como gzip o bz2?
- 24. compresión jerarquías de objetos de JavaScript
- 25. ¿Cómo cambiar el nivel de slf4j en el tiempo de ejecución?
- 26. podemos cambiar el nivel de registro de log4j en el tiempo de ejecución
- 27. ZipArchive php Class - ¿Está incorporado en PHP?
- 28. ¿Cómo puedo calcular el nivel de audio dB?
- 29. ¿Cómo puedo obtener el nivel de zoom actual en UIScrollView?
- 30. Compresión de datos cliente de Javascript
+1 para el tachado – Drew
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
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? –