Zip

实现 ExtractableInterface

Archive 包的 ZIP 格式适配器

ZIP 压缩代码部分基于以下代码: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

ZIP 压缩日期代码部分基于 Peter Listiak 的代码 [email protected]

此类受 The Horde Project 的 Compress 包的启发,并在代码和概念上大量借鉴了该包 http://www.horde.org

贡献者

Chuck Hagenbuch [email protected]

Michael Slusarz [email protected]

Michael Cochrane [email protected]

1.0

Joomla 框架

方法

__construct

创建一个新的 Archive 对象。

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

1.0

抛出

InvalidArgumentException

参数

options

array<string|int, mixed>|ArrayAccess一个选项数组或一个实现了 \ArrayAccess 的对象

响应

混合

addToZipFile

将一个“文件”添加到 ZIP 存档中。

addToZipFile(mixed||string|int &file, mixed||string|int &contents, mixed||string|int &ctrldir) : 

1.0

待办事项

审查并完成实现

参数

file

array<string|int, mixed>要添加的文件数据数组

contents

array<string|int, mixed>现有的压缩文件数组。

ctrldir

array<string|int, mixed>中央目录信息数组。

响应

checkZipData

检查数据是否为有效的 ZIP 文件。

checkZipData( data) : 

1.0

参数

data

stringZIP 存档数据缓冲区。

响应

bool如果有效则为真,如果无效则为假。

create

从文件数据数组创建 ZIP 压缩文件。

create( archive, mixed||string|int files) : 

1.0

待办事项

完成实现

参数

archive

string保存存档的路径。

files

array<string|int, mixed>要添加到存档中的文件数组。

响应

bool如果成功则为真。

createZipFile

创建 ZIP 文件。

createZipFile(mixed||string|int contents, mixed||string|int ctrlDir,  path) : 

官方 ZIP 文件格式:http://www.pkware.com/appnote.txt

1.0

待办事项

审查并完成实现

参数

contents

array<string|int, mixed>现有的压缩文件数组。

ctrlDir

array<string|int, mixed>中央目录信息数组。

path

string存储存档的路径。

响应

bool如果成功则为真

extract

将 ZIP 压缩文件解压缩到给定路径

extract( archive,  destination) : 

1.0

抛出

RuntimeException

参数

archive

string要解压缩的 ZIP 存档路径

destination

string解压缩存档到的路径

响应

bool如果成功则为真

extractCustom

使用仅需要 zlib 支持的基于 php 的算法将 ZIP 压缩文件解压缩到给定路径

extractCustom( archive,  destination) : 

1.0

抛出

RuntimeException

参数

archive

string要解压缩的 ZIP 存档路径。

destination

string解压缩存档到的路径。

响应

bool如果成功则为真

extractNative

使用本地 php api 调用来加快速度,将 ZIP 压缩文件解压缩到给定路径

extractNative( archive,  destination) : 
抛出

RuntimeException

1.0

参数

archive

string要解压缩的 ZIP 存档路径

destination

string解压缩存档到的路径

响应

bool成功时为真

getFileData

返回 ZIP 存档中偏移量处文件的的文件数据

getFileData( key) : 

1.0

参数

key

int存档中文件的偏移量。

响应

string未压缩的文件数据缓冲区。

hasNativeSupport

确定服务器是否具有本地 zip 支持以加快处理速度的方法

hasNativeSupport() : 
静态

1.0

响应

bool如果 php 具有本地 ZIP 支持则为真

isBelow

检查路径是否在给定目标路径之下

isBelow( destination,  path) : 

1.1.10

参数

destination

string目标路径

path

string要检查的路径

响应

布尔

isSupported

测试此适配器是否可以在此计算机上解压缩文件。

isSupported() : 
静态

1.0

响应

bool如果支持则为真

readZipInfo

从 ZIP 存档缓冲区获取文件/数据列表。

readZipInfo( data) : 
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

1.0

抛出

RuntimeException

参数

data

stringZIP 存档缓冲区。

响应

bool成功时为真

unix2DosTime

将 UNIX 时间戳转换为 4 字节 DOS 日期和时间格式(日期在高 2 字节,时间在低 2 字节,允许幅度比较)。

unix2DosTime( unixtime = null) : 

1.0

参数

unixtime

int当前的 UNIX 时间戳。

响应

int以 4 字节 DOS 格式表示的当前日期。

常量

方法

ZIP 压缩方法。

[0x0 => '无', 0x1 => '压缩', 0x2 => '超快速', 0x3 => '快速', 0x4 => '普通', 0x5 => '最大', 0x6 => '压缩', 0x8 => '解压缩']

1.0

类型

array<string|int, mixed>

CTRL_DIR_HEADER

中央目录记录的开头。

"PK\x01\x02"

1.0

类型

字符串

CTRL_DIR_END

中央目录记录的结尾。

"PK\x05\x06\x00\x00\x00\x00"

1.0

类型

字符串

FILE_HEADER

文件内容的开头。

"PK\x03\x04"

1.0

类型

字符串

属性

data

ZIP 文件数据缓冲区

1.0

类型

字符串

metadata

ZIP 文件元数据数组

1.0

类型

array<string|int, mixed>

options

保存选项数组。

1.0

类型

array<string|int, mixed>|ArrayAccess