wapmorgan / cab-archive
读取和提取 .cab 文件
0.0.7
2018-09-12 14:39 UTC
Requires
- wapmorgan/binary-stream: ~0.0
README
CabArchive 是 CAB (微软压缩柜文件) 的读取器。
注意! 由于旧版本中的错误,当前库仅提供在 PHP 7.0.22+、7.1.8+、7.2.0 上提取文件的功能。
使用方法
首先,您需要创建 CabArchive 实例
$cab = new CabArchive('123.cab');
之后,您可以获取存档中的文件列表
var_dump($cab->getFileNames());
之后,您可以获取存档中一个文件的详细信息
var_dump($cab->getFileData('README.md'));
CabArchive API
以下列出了 CabArchive
的所有属性和方法。
$filesCount
- Cab-存档中的文件数量__construct($filename)
- 从文件、流或套接字创建新实例getCabHeader()
- 返回 Cab-存档的头信息作为数组hasPreviousCab()
- 检查此 cab 是否在集中有前一个 CabgetPreviousCab()
- 返回前一个 Cab 的名称hasNextCab()
- 检查此 cab 是否在集中有下一个 CabgetNextCab()
- 返回下一个 Cab 的名称getSetId()
- 返回集 ID(对于来自一个集的所有 cab-存档是相同的)getInSetNumber()
- 返回集中 cab 的编号getFileNames(): array
- 从存档检索文件列表getFileData($filename): object
- 返回文件的附加信息作为对象。getFileAttributes($filename): array
- 返回文件属性列表。所有可用属性CabArchive::ATTRIB_READONLY
CabArchive::ATTRIB_HIDDEN
CabArchive::ATTRIB_SYSTEM
CabArchive::ATTRIB_EXEC
getFileContent($filename): string
- 返回文件的原始内容。extract($output, array $files = []): bool|int
- 将文件或文件提取到指定文件夹。
getFileNames
array getFileNames()
此方法返回一个数组,包含压缩在 cab 中的文件名。
getFileData
object getFileData($filename)
此方法返回一个对象,包含以下字段
- size - 未压缩的字节大小
- packedSize - 压缩的字节大小
- unixtime - 以 unixtime 格式的修改日期和时间
- isCompressed - 文件是否被压缩为 布尔值
getFileContent
string getFileContent($filename)
此方法返回 $filename
的原始文件内容。支持从未压缩和带有 MSZip 压缩的 cab 中提取。不支持 LZX 压缩。
仅适用于 PHP
- 7.0.22+
- 7.1.8+
- 7.2.0
extract
int|bool extract($outputDirectory, array $files = [])
此方法将传递的文件或整个 cab 提取到 $outputDirectory
。
支持从未压缩和带有 MSZip 压缩的 cab 中提取。不支持 LZX 压缩。
仅适用于 PHP
- 7.0.22+
- 7.1.8+
- 7.2.0
CAB 格式
- .CAB 文件格式在 https://msdn.microsoft.com/en-us/library/bb417343.aspx 中描述
- MSZIP 压缩(基于 Deflate)在 http://interoperability.blob.core.windows.net/files/MS-MCI/[MS-MCI].pdf 中描述