Tutorial ZIP-Archiv aus Dateien in einem Verzeichnis mit PHP erstellen

Kopiert Euch zunächst das Skript von Webbausteine.de.

Ich habe hier eine extra Seite mit der Master-Rahmen Einstellung “ZeroMargins” für dieses Skript erstellt, die ich auf die Dateierweiterung .php gestellt habe, damit das PHP-Skript überhaupt verarbeitet werden kann.

> Seite markieren > Bearbeiten > Benutzerdefinierte Namen > bei “Dateierweiterung” > .php wählen

Zieht Euch ein Textfeld auf und kopiert den Teil vom Skript  von <?php bis ?> in die HTML der Text-Eigenschaften in den HTML-Code Editor.

> Textfeld doppelklicken (Cursor blinkt) > Fenster “Text-Eigenschaften” > mittlere Button oben “Textfeld” > Button “HTML

Ich habe meine Seite mit dem Skript in einem Popup-Fenster verlinkt und noch diesen Preloader eingebaut.

Nun habe ich mir ein Verzeichnis “download” mit dem FTP-Programm im Stammverzeichnis meines Servers erstellt, das ich im Skript angebe und in das ich alle Dateien, die in dem ZIP-Archiv enthalten sein sollen, kopiert habe. Achtet auf die korrekte relative Pfadangabe zu diesem Verzeichnis. Weiterhin habe ich meiner ZIP-Datei einen Namen meiner Wahl gegeben. Unten das von mir angepasste Skript.

<?php
/*
 * Zip-Archiv erstellen und Datei herunterladen
 * zip_archiv.php (utf-8) - 07.07.2015
 * - Webbausteine.de
 */

// Beachten Sie, das hiermit keine Verzeichnisse gelesen
// werden können die ihrerseits Verzeichnisse enthalten!
$verzeichnis = "../download/";
$zip_name = "Beispiel-ZIP-Tommy.zip";

// Verzeichnis auslesen
$dateien = array_slice(scanDir($verzeichnis), 2);

// Neue Instanz der ZipArchive Klasse erzeugen
$zip = new ZipArchive;

if (!file_exists($zip_name)) {
 // Zip-Archiv erstellen
 $status = $zip->open($zip_name, ZipArchive::CREATE);
}
else {
 // Zip-Archiv überschreiben
 $status = $zip->open($zip_name, ZipArchive::OVERWRITE);
}

if ($status) {

 // Dateien ins Zip-Archiv einfügen
 foreach ($dateien as $datei) {
  $zip->addFile($verzeichnis . $datei, $datei);
 }

// Zip-Archiv schließen
 $zip->close();

 if (file_exists($zip_name)) {

  // Dateigröße ermitteln
  $info = stat($zip_name);
  echo '<center><p><a href="' . $zip_name . '">' . $zip_name . '</a> - ' .
  number_format(round($info["size"] / 1024 ,1), 2, ",", ".") .' KB</p></center>';
 }
}
?>

Viel Spaß!

Tutorials von Thomas Frei-Herrmann

diese Seite weiter empfehlen


Counter Statistik