[Skip Header and Navigation] [Jump to Main Content]
Startseite
oncode.info
Coding is a craft...

Sprachen

  • English
  • Deutsch

Primary Links

  • Startseite
  • Über uns
  • Contact
  • Blog

Suche

  • Moodle
    • Ressource-Block
    • UWA-Block
    • Ablenkungsblock
  • Tools
    • PHP-SEO-Werkzeuge
    • PsycoXPath
    • PHP-UWA-Library
    • Mailadressen-Codierer
    • PHP-Zip

PHP ZIP Bibliothek

Verfasst von skaldrom am Do, 07/28/2011 - 15:36
  • Tools

This code can generate a zip file in memory and push it out to a browser. It is suited for highly dynamic environments where eg different access rights for users make "static" zip files impossible.

This library is an extension of the work done by Devin Doucette published by phpclasses.org. It has been tested and proved to be very reliable, also under high load.

There is a german blog post Zipdateien on-the-fly erstellen mit PHP which explains the usage in Detail.

Some Examples:

<?php
// Archivklasse einbinden:
require_once ('lib/archive.php');
 
// Objekt erzeugen. Das Argument bezeichnet den Dateinamen
$zipfile= new zip_file('Meine Zipdatei.zip');
 
// Die Optionen
$zipfile->set_options(array (
        'basedir' => "/home/me/toZip/", // Das Basisverzeichnis. Sonst wird der ganze Pfad von / an im Zip gespeichert.
        'followlinks' => 1, // Symlinks sollen berücksichtigt werden
        'inmemory' => 1, // Die Datei nur im Speicher erstellen
        'level' => 6, // Level 1 = schnell, Level 9 = gut
        'recurse' => 1, // In Unterverzeichnisse wechseln
        // Wenn zu grosse dateien verarbeitet werden, kannes zu einem php memory error kommen
        // Man sollte nicht über das halbe memory_limit (php.ini) hinausgehen
        'maxsize' => 12*1024*1024 // Nur Dateien die <= 12 MB gross sind zippen
));
 
// Alle Dateien im Verzeichnis /home/me/toZip/Stuff hinzufügen
// Alle ".doc" Dateien und alle Ordner im Verzeichnis /home/me/toZip/Letters hinzufügen
$zipfile->add_files(array("Stuff", "Letters/*.doc"));
 
// Alle ".tmp" dateien in Stuff ausschliessen
$zipfile->exclude_files("htdocs/*.tmp");
 
// Alle Dateien in ".svn" und "CVS" Verzeichnissen ausschliessen (Regular Expressions)
$zipfile->exclude_regexp_files('.*/CVS|.*/CVS/.*|.*/\.svn|.*/\.svn.*');
 
// Archiv erstellen
$zipfile->create_archive();
 
// Archiv zum Download anbieten
$zipfile->download_file();
 
// Oder speichern (vielen Dank an PHPler!!!)
$zipfile->save_file('myzip.zip', $path = '/tmp/');
?>

Downloads

  • Alle Veröffentlichungen anzeigenRSS-Newsfeed aller Veröffentlichungen

  • English
All content is © 2010, 2011 by oncode.info. Keep doing something.
[Jump to Top] [Jump to Main Content]