Error fatal: Clase 'ZipArchive' no encontrada - Soluciones y alternativas
¿Qué podría causar este error?:
Error fatal: Clase 'ZipArchive' no encontrada en /home/test/dummyurl.com/wp-content/themes/mytheme/upload-zip.php en la línea 14
Versión de PHP es 5.3.1
¿WP tiene una función incorporada que debería usar? ¿Quizás la función "unzip_file" de la línea 525 de ./wp-admin/includes/file.php?
function openZip($file_to_open) {
global $target;
$zip = new ZipArchive(); //Esta es la línea 14
$x = $zip->open($file_to_open);
if($x === true) {
$zip->extractTo($target);
$zip->close();
unlink($file_to_open);
} else {
die("Hubo un problema. ¡Por favor intenta nuevamente!");
}
}

Significa que tu instalación de PHP no tiene la biblioteca Zip. Puedes instalarla recompilando PHP con la opción --enable-zip
, o instalar el paquete PECL.

si estás en un hosting compartido, te recomendaría escribir a tu proveedor para ver si pueden habilitarlo para tu sitio. Puede que lo tengan desactivado ya que comprimir puede ser una operación que consuma muchos recursos de CPU.

Interesante. ¿Cómo manejan esto las rutinas de instalación de WordPress? Me gustaría hacer algo similar.

@Scott B: Existe una función unzip_file()
que primero intenta usar ZipArchive
como haces tú, pero si no existe, recurre a PclZip, una librería de compresión escrita en PHP. Así que te sugiero que también intentes usar esta función unzip_file()
, ya que probablemente siempre existirá en WordPress. (Quizás deberíamos reescribir esta pregunta para que sea "¿Cómo descomprimir archivos sin ZipArchive
?")

Estoy de acuerdo, lo he añadido como una pregunta separada > http://wordpress.stackexchange.com/questions/8213/how-to-unzip-files-without-ziparchive
