Zip

Implements ExtractableInterface

ZIP format adapter for the Archive package

The ZIP compression code is partially based on code from: Eric Mueller [email protected] http://www.zend.com/codex.php?id=535&single=1

Deins125 [email protected] http://www.zend.com/codex.php?id=470&single=1

The ZIP compression date code is partially based on code from Peter Listiak [email protected]

This class is inspired from and draws heavily in code and concept from the Compress package of The Horde Project http://www.horde.org

contributor

Chuck Hagenbuch [email protected]

Michael Slusarz [email protected]

Michael Cochrane [email protected]

since

1.0

package

Joomla Framework

Methods

__construct

Create a new Archive object.

__construct(array|\ArrayAccess options = []) : mixed
since

1.0

throws

\InvalidArgumentException

Arguments

options

array|\ArrayAccessAn array of options or an object that implements \ArrayAccess

Response

mixed

addToZipFile

Adds a "file" to the ZIP archive.

addToZipFile(array &file, array &contents, array &ctrldir) : void
since

1.0

todo

Review and finish implementation

Arguments

file

arrayFile data array to add

contents

arrayAn array of existing zipped files.

ctrldir

arrayAn array of central directory information.

checkZipData

Checks to see if the data is a valid ZIP file.

checkZipData(string data) : bool
since

1.0

Arguments

data

stringZIP archive data buffer.

Response

boolTrue if valid, false if invalid.

create

Create a ZIP compressed file from an array of file data.

create(string archive, array files) : bool
since

1.0

todo

Finish Implementation

Arguments

archive

stringPath to save archive.

files

arrayArray of files to add to archive.

Response

boolTrue if successful.

createZipFile

Creates the ZIP file.

createZipFile(array contents, array ctrlDir, string path) : bool

Official ZIP file format: http://www.pkware.com/appnote.txt

since

1.0

todo

Review and finish implementation

Arguments

contents

arrayAn array of existing zipped files.

ctrlDir

arrayAn array of central directory information.

path

stringThe path to store the archive.

Response

boolTrue if successful

extract

Extract a ZIP compressed file to a given path

extract(string archive, string destination) : bool
since

1.0

throws

\RuntimeException

Arguments

archive

stringPath to ZIP archive to extract

destination

stringPath to extract archive into

Response

boolTrue if successful

extractCustom

Extract a ZIP compressed file to a given path using a php based algorithm that only requires zlib support

extractCustom(string archive, string destination) : bool
since

1.0

throws

\RuntimeException

Arguments

archive

stringPath to ZIP archive to extract.

destination

stringPath to extract archive into.

Response

boolTrue if successful

extractNative

Extract a ZIP compressed file to a given path using native php api calls for speed

extractNative(string archive, string destination) : bool
throws

\RuntimeException

since

1.0

Arguments

archive

stringPath to ZIP archive to extract

destination

stringPath to extract archive into

Response

boolTrue on success

getFileData

Returns the file data for a file by offset in the ZIP archive

getFileData(int key) : string
since

1.0

Arguments

key

intThe position of the file in the archive.

Response

stringUncompressed file data buffer.

hasNativeSupport

Method to determine if the server has native zip support for faster handling

hasNativeSupport() : bool
static
since

1.0

Response

boolTrue if php has native ZIP support

isBelow

Check if a path is below a given destination path

isBelow(string destination, string path) : bool
since

1.1.10

Arguments

destination

stringThe destination path

path

stringThe path to be checked

Response

bool

isSupported

Tests whether this adapter can unpack files on this computer.

isSupported() : bool
static
since

1.0

Response

boolTrue if supported

readZipInfo

Get the list of files/data from a ZIP archive buffer.

readZipInfo(string data) : bool
KEY: Position in zipfile
VALUES: 'attr'  --  File attributes
        'crc'   --  CRC checksum
        'csize' --  Compressed file size
        'date'  --  File modification time
        'name'  --  Filename
        'method'--  Compression method
        'size'  --  Original file size
        'type'  --  File type
since

1.0

throws

\RuntimeException

Arguments

data

stringThe ZIP archive buffer.

Response

boolTrue on success

unix2DosTime

Converts a UNIX timestamp to a 4-byte DOS date and time format (date in high 2-bytes, time in low 2-bytes allowing magnitude comparison).

unix2DosTime(int unixtime = null) : int
since

1.0

Arguments

unixtime

intThe current UNIX timestamp.

Response

intThe current date in a 4-byte DOS format.

Constants

METHODS

ZIP compression methods.

Value [0x0 => 'None', 0x1 => 'Shrunk', 0x2 => 'Super Fast', 0x3 => 'Fast', 0x4 => 'Normal', 0x5 => 'Maximum', 0x6 => 'Imploded', 0x8 => 'Deflated']
since

1.0

Type(s)

array

CTRL_DIR_HEADER

Beginning of central directory record.

Value "PK\x01\x02"
since

1.0

Type(s)

string

CTRL_DIR_END

End of central directory record.

Value "PK\x05\x06\x00\x00\x00\x00"
since

1.0

Type(s)

string

FILE_HEADER

Beginning of file contents.

Value "PK\x03\x04"
since

1.0

Type(s)

string

Properties

data

ZIP file data buffer

since

1.0

Type(s)

string

metadata

ZIP file metadata array

since

1.0

Type(s)

array

options

Holds the options array.

since

1.0

Type(s)

array|\ArrayAccess