wapmorgan / cab-archive
Reading and extraction of .cab-files
Requires
- wapmorgan/binary-stream: ~0.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
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