Login   Register  
PHP Classes
elePHPant
Icontem

File: ZipStream.Example1.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Asbjorn Grandt  >  Zip Stream  >  ZipStream.Example1.php  >  Download  
File: ZipStream.Example1.php
Role: Example script
Content type: text/plain
Description: Example for ZipStream
Class: Zip Stream
Create ZIP archives for large number of files
Author: By
Last change: Rev. 1.50 - 2013-12-01
* Added: Support for defining file permissions, using the unix format, ie. 644 for files and 755 for dirs
* Changed: The default permission on files and dirs from 777 to 644 and 755 respectively.
* Changed: addDicextoryContent now reads permissions from the filesystem, but the user can override.
Date: 2013-12-01 03:46
Size: 3,094 bytes
 

Contents

Class file image Download
<?php
error_reporting
(E_ALL E_STRICT);
ini_set('error_reporting'E_ALL E_STRICT);
ini_set('display_errors'1);
//
//// Example. Zip all .html files in the current directory and save to current directory.
// Make a copy, also to the current dir, for good measure.
//$mem = ini_get('memory_limit');
$extime ini_get('max_execution_time');
//
////ini_set('memory_limit', '512M');
ini_set('max_execution_time'600);

include_once(
"ZipStream.php");
//print_r(ini_get_all());

$fileTime date("D, d M Y H:i:s T");

$chapter1 "Chapter 1\n"
"Lorem ipsum\n"
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec magna lorem, mattis sit amet porta vitae, consectetur ut eros. Nullam id mattis lacus. In eget neque magna, congue imperdiet nulla. Aenean erat lacus, imperdiet a adipiscing non, dignissim eget felis. Nulla facilisi. Vivamus sit amet lorem eget mauris dictum pharetra. In mauris nulla, placerat a accumsan ac, mollis sit amet ligula. Donec eget facilisis dui. Cras elit quam, imperdiet at malesuada vitae, luctus id orci. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque eu libero in leo ultrices tristique. Etiam quis ornare massa. Donec in velit leo. Sed eu ante tortor.\n";

$zip = new ZipStream("ZipStreamExample1.zip");

$zip->setComment("Example Zip file for Large file sets.\nCreated on " date('l jS \of F Y h:i:s A'));
$zip->addFile("Hello World!\r\n""Hello.txt");

$zip->openStream("big one3.txt");
$zip->addStreamData($chapter1."\n\n\n");
$zip->addStreamData($chapter1."\n\n\n");
$zip->addStreamData($chapter1."\n\n\n");
$zip->closeStream();

// For this test you need to create a large text file called "big one1.txt"
if (file_exists("big one1.txt")) {
    
$zip->addLargeFile("big one1.txt""big one2a.txt"0nullZipStream::getFileExtAttr("big one1.txt"));

    
$fhandle fopen("big one1.txt""rb");
    
$zip->addLargeFile($fhandle"big one2b.txt");
    
fclose($fhandle);
}

$zip->addDirectory("Empty Dir");

//Dir test, using the stream option on $zip->addLargeFile
$fileDir './';
@
$handle opendir($fileDir);
if (
$handle) {
    
/* This is the correct way to loop over the directory. */
    
while (false !== ($file readdir($handle))) {
        if ((
$file != '.') && ($file != '..') && is_file($file)) {
            
$zip->addLargeFile(($fileDir $file), "dirTest/".$filefilectime($fileDir $file));
        }
    }
}

// Add a directory, first recursively, then the same directory, but without recursion.
// Naturally this requires you to change the path to ../test to point to a directory of your own.
$zip->addDirectory("recursiveDir/");
$zip->addDirectoryContent("../test""recursiveDir/test");
$zip->addDirectoryContent("../test""recursiveDir/testFlat"FALSE);
/*
$addedFiles = array();
$zip->addDirectoryContent("../test", "recursiveDir/testPermisssions", TRUE, TRUE, $addedFiles,
            TRUE, ZipStream::generateExtAttr(4, 4, 0, FALSE), ZipStream::generateExtAttr(4, 4, 0, TRUE));
*/
$zip->finalize(); // Mandatory, needed to send the Zip files central directory structure.
?>