Utilisation de la fonction zip de PHP sans exec
Sur nos serveurs, la fonction PHP exec est désactivée, voir Sécurité PHP : fonctions désactivées. Vous ne pouvez donc pas appeler les programmes zip et unzip du serveur. Ce n'est d'ailleurs pas nécessaire : PHP dispose de sa propre classe ZipArchive. Elle vous permet de créer des fichiers zip et de les extraire.
Créer un fichier zip
Enregistrez ce code sous le nom testzip.php, par exemple dans public_html, puis ouvrez le fichier dans votre navigateur :
<?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();
Extraire un fichier 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';
}
Cela ne fonctionne pas ? Vérifiez alors dans Select PHP version que l'extension zip est activée. Supprimez le script de test une fois que vous avez terminé.
Vous souhaitez simplement extraire un fichier zip que vous avez vous-même téléversé ? C'est également possible sans code, dans le Gestionnaire de fichiers, voir Je souhaite téléverser et extraire un fichier zip.
Explications détaillées avec captures d'écran : Activer et désactiver des extensions PHP dans le manuel DirectAdmin.
