Estoy tratando de crear un script zip basado en lo que he encontrado here pero parece que estoy obteniendo un error fatal: Error de clase 'ZipArchive' no encontrado en el nuevo ZipArchive (); función.PHP Zip Creando clase ZipArchive no encontrado Error
Investigando esto, parece que esto suele deberse a la forma en que se compila PHP. Tengo una cuenta de alojamiento compartida, así que no configuré nada de esto ... y asumo que no puedo hacer ningún cambio en la compilación. Como curiosidad me echó un vistazo en mi phpinfo() y me encontré con algunas cosas que parecían asociados:
PHP versión 5.2.6
BZip2 Support Enabled <--maybe not so relevant
ZLib Support enabled
Stream Wrapper support compress.zlib://
Stream Filter support zlib.inflate, zlib.deflate
Compiled Version 1.1.4
Linked Version 1.1.4
No estoy seguro de si entirly nada de esto significa que yo tener la capacidad de crear cremalleras. Para más información (aunque no creo que sea revivido) aquí está mi script hasta ahora ... esto no ha sido probado, ya que no puedo pasar este error de Clase no encontrada.
$file = tempnam("tmp", "zip");
$zip = new ZipArchive();
$zip->open($file, ZipArchive::OVERWRITE);
//the string "file1" is the name we're assigning the file in the archive
$zip->addFile('show1.jpg', 'file1.jpg');
$zip->addFile('show2.jpg', 'file2.jpg');
$zip->addFile('show3.jpg', 'file3.jpg');
$zip->addFile('show4.jpg', 'file4.jpg');
$zip->addFile('show5.jpg', 'file5.jpg');
$zip->addFile('show6.jpg', 'file6.jpg');
// echo $zip->file(); //this sends the compressed archive to the output buffer instead of writing it to a file.
$zip->close();
header('Content-Type: application/zip');
header('Content-Length: ' . filesize($file));
header('Content-Disposition: attachment; filename="' . $file.'"');
readfile($file);
unlink($file);
Así que mi pregunta (s) realmente son:
- ¿Estoy haciendo algo en mi script para causar este error?
- ¿Alguna de esas cosas de mi phpinfo() significa que debería ser capaz de crear archivos zip, ... si no es lo que debería estar buscando allí, eso me avisará si tengo la capacidad.
- Parece que este ZLib es un poco blando de la biblioteca, pero no tengo idea si hace lo que yo quiero que haga, o incluso cómo usarlo ... esto es un presentimiento, pero si me puede ayudar a crear archivos zip ¿alguien me puede indicar la dirección correcta de cómo usarlo?
Gracias de antemano. Dan
supongo que aunque ya estoy en un alojamiento compartido cuenta, no puedo hacer esto? El proveedor de alojamiento web (en mi caso, streamline.net) es el único que puede volver a compilar las cosas de php/add en ... ¿o hay algo que pueda hacer? –
Si su proveedor de hosting no rehace su compilación PHP con zip, entonces la biblioteca PCLZip puede ser una alternativa –
@ Mark Baker Gracias Mark, he estado buscando en PCLZip esta mañana y ¡funciona perfectamente! –