wapmorgan / cab-archive
Reading and extraction of .cab-files
Installs: 11 222
Dependents: 0
Suggesters: 1
Security: 0
Stars: 3
Watchers: 4
Forks: 1
Open Issues: 0
Requires
- wapmorgan/binary-stream: ~0.0
README
CabArchive is reader of CAB (Microsoft Cabinet files).
Precaution! Right now library provide functionality to extract files only on PHP 7.0.22+, 7.1.8+, 7.2.0 due to bug in previous versions.
Usage
Firstly, you need to create CabArchive instance:
$cab = new CabArchive('123.cab');
After that you can get list of files in archive:
var_dump($cab->getFileNames());
After that you can get all information about one file in archive:
var_dump($cab->getFileData('README.md'));
CabArchive API
All list of properties and methods of CabArchive
is listed below.
$filesCount
- number of files in Cab-archive__construct($filename)
- creates new instance from file, stream or socketgetCabHeader()
- returns header of Cab-archive as arrayhasPreviousCab()
- checks that this cab has previous Cab in setgetPreviousCab()
- returns name of previous CabhasNextCab()
- checks that this cab has next Cab in setgetNextCab()
- returns name of next CabgetSetId()
- returns set id (identical for all cab-archives from one set)getInSetNumber()
- returns number of cab in setgetFileNames(): array
- retrives list of files from archivegetFileData($filename): object
- returns additional info of file as object.getFileAttributes($filename): array
- returns list of file attributes. All available attributes:CabArchive::ATTRIB_READONLY
CabArchive::ATTRIB_HIDDEN
CabArchive::ATTRIB_SYSTEM
CabArchive::ATTRIB_EXEC
getFileContent($filename): string
- returns raw content of file.extract($output, array $files = []): bool|int
- extracts file or files to specific folder.
getFileNames
array getFileNames()
This method returns an array of file names compressed in cab.
getFileData
object getFileData($filename)
This method returns an object with following fields:
- size - uncompressed size in bytes
- packedSize - compressed size in bytes
- unixtime - date&time of modification in unixtime format
- isCompressed - is file compressed as boolean
getFileContent
string getFileContent($filename)
This method returns raw file content of $filename
.
Supports extracting from cab's without compression and with MSZip compression. LZX compression is not supported.
Works correctly only on PHP:
- 7.0.22+
- 7.1.8+
- 7.2.0
extract
int|bool extract($outputDirectory, array $files = [])
This method extracts passed files or the whole cab to $outputDirectory
.
Supports extracting from cab's without compression and with MSZip compression. LZX compression is not supported.
Works correctly only on PHP:
- 7.0.22+
- 7.1.8+
- 7.2.0
CAB Format
- .CAB-files format is described at https://msdn.microsoft.com/en-us/library/bb417343.aspx
- MSZIP compression (based on Deflate) is described at http://interoperability.blob.core.windows.net/files/MS-MCI/[MS-MCI].pdf