Verwendung der PHP-Zip-Funktion ohne exec
Auf unseren Servern ist die PHP-Funktion exec deaktiviert, siehe PHP-Sicherheit: deaktivierte Funktionen. Sie können daher die Programme zip und unzip des Servers nicht aufrufen. Das ist auch nicht nötig: PHP bringt selbst die Klasse ZipArchive mit. Damit erstellen Sie Zip-Dateien und entpacken sie.
Eine Zip-Datei erstellen
Speichern Sie diesen Code als testzip.php, zum Beispiel in public_html, und öffnen Sie die Datei in Ihrem Browser:
<?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();
Eine Zip-Datei entpacken
<?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';
}
Funktioniert es nicht? Prüfen Sie dann unter Select PHP version, ob die Erweiterung zip aktiviert ist. Löschen Sie das Testskript, wenn Sie fertig sind.
Möchten Sie nur eine Zip-Datei entpacken, die Sie selbst hochgeladen haben? Das geht auch ohne Code im Dateimanager, siehe Ich möchte eine Zip-Datei hochladen und entpacken.
Ausführliche Erklärung mit Screenshots: PHP-Erweiterungen aktivieren und deaktivieren in der DirectAdmin-Anleitung.
