
ZIP-Archive können lokal entpackt und die enthaltenen Dateien auf den Server geladen, oder direkt am Server entpackt werden. Dies bringt vor allem bei großen ZIP-Dateien, wie etwa bei der Installation von CMS-Systemen wie Typo3, Drupal, Joomla etc., eine deutliche Zeitersparnis, da ansonsten sämtliche Dateien manuell per FTP übertragen werden müssen.
Betreibt man keinen eigenen Server - hier gibt es natürlich andere Optionen - und bietet der Webhoster bzw. der aktuelle Tarif keinen SSH-Zugang, kann man diese Aufgabe mit PHP bewerkstelligen. Hier gibt es mehrere Möglichkeiten, dies mit einem Script auszuführen. Eine unkomplizierte Variante möchte ich in diesem Artikel vorstellen, diese sollte ab PHP 5.2.0 überall funktionieren.
Mit dem folgenden kleinen Script ist es möglich, ZIP-Archive auf einfache Weise am Server zu entpacken:
Update August 2020: Das Script gibt es auch fertig zum Download, mit einfacher Benutzeroberfläche und automatischer Archiv-Erkennung.
Neue Version 1.4 mit zusätzlichen Funktionen verfügbar!
Zum Download des "Unzip Scripts" oder
Screenshot ansehen.
<?php// ZIP-Archive am Webhosting-Server entpacken// Das PHP-Modul "zip" muss installiert sein!// Variablen eintragen$quelldatei = 'datei.zip'; // Name des ZIP-Archives$zielordner = './'; // Name des Zielverzeichnisses// ------------------- $zip = new ZipArchive
; $res = $zip->open($quelldatei); if ($res === TRUE) { $zip->extractTo($zielordner); $zip->close(); echo 'Das ZIP-Archiv <b>'.$quelldatei.'</b> wurde erfolgreich in das Verzeichnis <b>'.$zielordner.'</b> entpackt.'; } else { echo 'Es ist ein Fehler beim Entpacken des ZIP-Archives aufgetreten!'; }?>
Anleitung:
• Den obigen Code einfach in eine PHP-Datei kopieren und diese Datei z.B. "unzip.php" benennen.
• Den Namen des zu entpackenden ZIP-Archivs in die Variable "$quelldatei" eintragen. Unter "$zielordner" kann auch ein Unterverzeichnis als Ziel benannt werden, standardmäßig wird das Archiv direkt in das Installationsverzeichnis entpackt.
• Diese Datei zusammen mit dem zu entpackenden ZIP-Archiv in das gewünschte Verzeichnis auf den Server laden.
• Nun die hochgeladene "unzip.php" im Browser aufrufen, also z.B. "http://www.meine-seite.de/zipinstall/unzip.php" - das ZIP-Archiv wird sofort entpackt.
• Achtung: Sollte das gewählte Zielverzeichnis nicht leer sein, werden bereits vorhandene Daten überschrieben! Nach dem Entpacken sollte die "unzip.php" unbedingt vom Server gelöscht werden, um einen irrtümlichen neuerlichen Aufruf und somit eventuellen Datenverlust zu vermeiden!
Wenn Probleme auftreten:
Das obige Script benötigt das PHP-Modul "zip", dieses muss am Server installiert sein. Sollte das Script eine Fehlermeldung wie
Class 'ZipArchive' not found oder
PHP module zip not installed erzeugen, ist dies allerdings nicht der Fall. Hier lohnt sich ein Blick in die Serverkonfiguration mittels phpinfo(). Viele Webhoster erlauben aber das nachinstallieren von vorkompilierten, aber nicht installierten, PHP-Modulen über das Kundenmenü oder über die
php.ini. Im Zweifelsfall einfach den Provider kontaktieren.
Das fertige Unzip Script herunterladen
und sofort loslegen:
Aufgenommen: Aug 18, 15:46