Utilização da função zip do PHP sem exec
Nos nossos servidores, a função PHP exec está desativada; consulte Segurança PHP: funções desativadas. Por isso, não é possível chamar os programas zip e unzip do servidor. Também não é necessário: o próprio PHP dispõe da classe ZipArchive, com a qual pode criar ficheiros zip e extraí-los.
Criar um ficheiro zip
Guarde este código como testzip.php, por exemplo em public_html, e abra o ficheiro no seu 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();
Extrair um ficheiro 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';
}
Não funciona? Verifique em Select PHP version se a extensão zip está ativada. Quando terminar, elimine o script de teste.
Pretende apenas extrair um ficheiro zip que o próprio carregou? Também é possível fazê-lo sem código no Gestor de Ficheiros; consulte Pretendo carregar e extrair um ficheiro zip.
Explicação detalhada com capturas de ecrã: Ativar e desativar extensões PHP no manual do DirectAdmin.
