Compression et décompression d'archives zip via PHP

Doc

<?php
// increase script timeout value
ini_set("max_execution_time", 300);
// create object
$zip = new ZipArchive();
// open archive
if ($zip->open("folder_backup.zip", ZIPARCHIVE::CREATE) !== TRUE)
{
    die ("Could not open archive");
}
// initialize an iterator
// pass it the directory to be processed
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator("./"));
// iterate over the directory
// add each file found to the archive
foreach ($iterator as $key=>$value)
{
    if($key != "./.." || $key != "./.")
    {
        $zip->addFile(realpath($key), $key) or die ("ERROR: Could not add file: $key");
    }
}
// close and save archive

echo "--- SAUVEGARDE DU DOSSIER ---<br/>Nombre de fichiers : " . $zip->numFiles . "<br/>";
echo "Statut : " . $zip->status . "<br/>";
$msg = $zip->close();
echo "Archive created successfully. Zip close : ".$msg;
?>

Ce code fonctionne bien, mais il créé des fichiers vides _ et __ dans chaque dossier à cause des emplacements “./.” et “./..”. Il faudrait trouver une solution et ce serait niquel.