wapmorgan / cab-archive
Reading and extraction of .cab-files
Installs: 12 693
Dependents: 0
Suggesters: 1
Security: 0
Stars: 3
Watchers: 3
Forks: 1
Open Issues: 0
pkg:composer/wapmorgan/cab-archive
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_READONLYCabArchive::ATTRIB_HIDDENCabArchive::ATTRIB_SYSTEMCabArchive::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