Teil von  SELFPHP
Letztes Update: 27.07.2006 15:57:55 


Navigation

Seite News *

Seite Startseite
Seite Über SELFPHP
Seite Werbung
Seite Kontakt
Seite Forum *
Seite Download *
Seite SELFPHP Banner *
Seite SELFPHP in Buchform
Seite Newsletter *
Seite Impressum

 
* Link führt ins Internet


Anbieterverzeichnis
Informieren Sie sich über die Unternehmen in unserem Anbieterverzeichnis!  

 


SELFPHP Forum
Fragen rund um die Themen PHP? In über 79.000 Beiträgen finden Sie sicher die passende Antwort!  


Newsletter
Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 



 

Dateien/Verzeichnisse mit ZIP komprimieren




Systemvoraussetzung

  • Linux
  • PHP 3
  • PHP 4
  • PHP 5
  • ZIP

Datei(en)

zip.php

Das Skript komprimiert alle angegebenen Dateien und Verzeichnisse und speichert diese in einer Zip-Datei im gleichen Verzeichnis wie die PHP-Datei. Die erzeugte Zip-Datei eignet sich gerade für den Einsatz unter einem Windows-Betriebssystem.

Hinweis

Sollte das Skript, nachdem Sie es ausgeführt haben, keine Backupdatei erzeugen, lesen Sie bitte den Text zu Verzeichnisrechten im einleitenden Teil "Grundlegende Informationen" in diesem Kapitel. Höchstwahrscheinlich wird es dann daran liegen, dass Sie nicht die erforderlichen Rechte für dieses Verzeichnis besitzen und diese erst vergeben müssen.

Dieses Beispiel wird neben den beiden Textdateien Testdatei1.txt und Testdatei2. txt das komplette Verzeichnis testordner/ incl. Unterverzeichnissen komprimieren. Weiterhin werden im testordnerSQL/ alle *.sql-Dateien archiviert und komprimiert. Sollten sich in diesem Verzeichnis weitere Unterverzeichnisse mit sql-Dateien befinden, so werden diese nicht mit in die Archivdatei aufgenommen.

01:
02:
03:
04:
05:
06:
07:
08:
<?PHP

$files[] = 'Testdatei1.txt';
$files[] = 'Testdatei2.txt';
$files[] = 'testordner/';
$files[] = 'testordnerSQL/*.sql';

?>

Die in unserem Array $files zu sichernden Dateien müssen durch ein Leerzeichen voneinander getrennt werden, damit der Befehl zip einwandfrei funktioniert. Wie wir in der Einleitung bereits erklärt haben, verzichten wir hier bewusst auf espaceshellcmd(). Zum Schluss führen wir unser Statement mit dem Befehl exec() aus und erhalten dank unseres Parameters v als Rückgabewert die gesicherten Dateinamen und Verzeichnisse inkl. prozentualer Angabe der Komprimierungsrate.

09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21 :
<?PHP

$implodeFiles implode(" "$files);

$tarName 'backup.zip';

$shellBefehl "zip -r $tarName $implodeFiles";

exec($shellBefehl,$var);

print_r($var);

?>

Ausgabe im Browser

Array
(
      [0] => adding: Testdatei1.txt (deflated 100%)
      [1] => adding: Testdatei2.txt (deflated 100%)
      [2] => adding: testordner/ (stored 0%)
      [3] => adding: testordner/Testdatei4.txt (deflated 100%)
      [4] => adding: testordner/Testdatei5.txt (deflated 100%)
      [5] => adding: testordner/Testdatei6.txt (deflated 100%)
      [6] => adding: testordnerSQL/selfphp_testfile.sql (deflated 88%)
      [7] => adding: testordnerSQL/selfphp_testfile1.sql (deflated 88%)
      [8] => adding: testordnerSQL/selfphp_testfile2.sql (deflated 88%)
)



 

 




 sponsored by

Host Europe


HighText iBusiness


Host Europe




© 2001-2006 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt