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

Languages

  • English
  • Deutsch

Primary Links

  • Home
  • About us
  • Contact
  • Blog

Search

  • Moodle
    • Resource-Block
    • UWA-Block
    • Distractor-Block
  • Tools
    • PHP-SEO-Tools
    • PsycoXPath
    • PHP-UWA-Library
    • Hide-Email
    • PHP-Zip

PHP ZIP Library

Submitted by skaldrom on Thu, 07/28/2011 - 15:24
  • 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

  • View all releasesRSS feed of all releases

Resources

  • Read documentation

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