Použití funkce PHP zip bez exec
Na našich serverech je PHP funkce exec vypnutá, viz Zabezpečení PHP: vypnuté funkce. Nemůžete tedy na serveru volat programy zip a unzip. To ale ani není potřeba: PHP má vlastní třídu ZipArchive. Pomocí ní můžete vytvářet zip soubory a rozbalovat je.
Vytvoření zip souboru
Uložte tento kód jako testzip.php, například do složky public_html, a otevřete soubor ve svém prohlížeči:
<?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();
Rozbalení zip souboru
<?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';
}
Nefunguje to? Zkontrolujte v části Select PHP version, zda je zapnuté rozšíření zip. Až budete hotovi, testovací skript smažte.
Chcete pouze rozbalit zip soubor, který jste sami nahráli? To lze i bez kódu ve Správci souborů, viz Chci nahrát a rozbalit zip soubor.
Podrobný návod se snímky obrazovky: Zapnutí a vypnutí PHP rozšíření v příručce k DirectAdmin.
