Använda PHP:s zip-funktion utan exec
På våra servrar är PHP-funktionen exec avstängd, se PHP-säkerhet: avstängda funktioner. Du kan alltså inte anropa serverns program zip och unzip. Det behövs inte heller: PHP har själv klassen ZipArchive. Med den skapar du zip-filer och packar upp dem.
Skapa en zip-fil
Spara den här koden som testzip.php, till exempel i public_html, och öppna filen i din webbläsare:
<?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();
Packa upp en zip-fil
<?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';
}
Fungerar det inte? Kontrollera då i Select PHP version att tillägget zip är aktiverat. Ta bort testskriptet när du är klar.
Vill du bara packa upp en zip-fil som du själv har laddat upp? Det kan du göra utan kod i File Manager, se Jag vill ladda upp och packa upp en zip-fil.
Utförlig förklaring med skärmbilder: Aktivera och inaktivera PHP-tillägg i DirectAdmin-handboken.
