Bruk av PHP-funksjonen zip uten exec
På serverne våre er PHP-funksjonen exec slått av, se PHP-sikkerhet: deaktiverte funksjoner. Du kan derfor ikke kalle opp programmene zip og unzip på serveren. Det trenger du heller ikke: PHP har selv klassen ZipArchive. Med den lager du zip-filer og pakker dem ut.
Lage en zip-fil
Lagre denne koden som testzip.php, for eksempel i public_html, og åpne filen i nettleseren:
<?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();
Pakke ut 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';
}
Fungerer det ikke? Sjekk da i Select PHP version om utvidelsen zip er slått på. Slett testskriptet når du er ferdig.
Vil du bare pakke ut en zip-fil du har lastet opp selv? Det kan du også gjøre uten kode i File Manager, se Jeg vil laste opp og pakke ut en zip-fil.
Utfyllende forklaring med skjermbilder: Slå PHP-utvidelser av og på i DirectAdmin-veiledningen.
