Errore Fatale: Classe 'ZipArchive' non trovata - Soluzioni e Alternative
Cosa potrebbe causare questo errore:
Errore fatale: Classe 'ZipArchive' non trovata in /home/test/dummyurl.com/wp-content/themes/mytheme/upload-zip.php alla riga 14
La versione PHP è 5.3.1
WordPress ha una funzione integrata che potrei usare invece? Come ad esempio la funzione "unzip_file" alla riga 525 di ./wp-admin/includes/file.php"?
function openZip($file_to_open) {
global $target;
$zip = new ZipArchive(); //Questa è la riga 14
$x = $zip->open($file_to_open);
if($x === true) {
$zip->extractTo($target);
$zip->close();
unlink($file_to_open);
} else {
die("Si è verificato un problema. Per favore riprova!");
}
}

Significa che la tua installazione PHP non ha la libreria Zip. Puoi installarla ricompilando PHP con l'opzione --enable-zip
, oppure installando il pacchetto PECL.

se sei su un hosting condiviso ti consiglierei di scrivere al tuo host per vedere se possono abilitarlo per il tuo sito. Potrebbero averlo disabilitato poiché la compressione può essere un'operazione che richiede molte risorse CPU.

Interessante. Come fanno le routine di installazione di WordPress a bypassare questo problema? Vorrei fare qualcosa di simile.

@Scott B: C'è una funzione unzip_file()
che prima prova con ZipArchive
come fai tu, ma se non esiste passa a PclZip, una libreria zip scritta in PHP. Quindi ti suggerisco di provare a usare anche questa funzione unzip_file()
, dato che probabilmente esisterà sempre in WordPress. (Forse dovremmo riscrivere questa domanda in modo che diventi "Come decomprimere file senza ZipArchive
?")

Sono d'accordo, l'ho aggiunto come domanda separata > http://wordpress.stackexchange.com/questions/8213/how-to-unzip-files-without-ziparchive
