Uso de la función zip de PHP sin exec
En nuestros servidores, la función PHP exec está desactivada, consulte Seguridad de PHP: funciones desactivadas. Por lo tanto, no puede invocar los programas zip y unzip del servidor. Tampoco es necesario: PHP dispone de su propia clase ZipArchive. Con ella puede crear archivos zip y descomprimirlos.
Crear un archivo zip
Guarde este código como testzip.php, por ejemplo en public_html, y abra el archivo en su navegador:
<?php
$zip = new ZipArchive();
$bestand = __DIR__ . '/test.zip';
if ($zip->open($bestand, ZipArchive::CREATE) !== true) {
exit("Het lukt niet om $bestand te openen. Heeft de map schrijfrechten?");
}
$zip->addFile(__DIR__ . '/testzip.php', 'testzip.php');
echo 'Aantal bestanden in de zip: ' . $zip->numFiles;
$zip->close();
Descomprimir un archivo zip
<?php
$zip = new ZipArchive();
if ($zip->open(__DIR__ . '/test.zip') === true) {
$zip->extractTo(__DIR__ . '/uitgepakt');
$zip->close();
echo 'Uitgepakt';
} else {
echo 'Het zip-bestand kon niet worden geopend';
}
¿No funciona? Compruebe entonces en Select PHP version si la extensión zip está activada. Elimine el script de prueba cuando haya terminado.
¿Solo desea descomprimir un archivo zip que usted mismo ha subido? También puede hacerlo sin código en el Administrador de archivos, consulte Quiero subir y descomprimir un archivo zip.
Explicación detallada con capturas de pantalla: Activar y desactivar extensiones de PHP en el manual de DirectAdmin.
