PharData::__construct()
(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)
Construct a non-executable tar or zip archive object
说明
PharData::__construct(string $fname[,int $flags[,string $alias[,int $format= Phar::TAR
]]])
参数
- $fname
Path to an existing tar/zip archive or to-be-created archive
- $flags
Flags to pass to Phar parent class RecursiveDirectoryIterator.
- $alias
Alias with which this Phar archive should be referred to in calls to stream functionality.
- $format
One of the file format constants available within the Phar class.
错误/异常
Throws BadMethodCallException if called twice;UnexpectedValueException if the Phar archive can't be opened.
范例
A PharData::__construct() example
<?php try { $p = new PharData('/path/to/my.tar', Phar::CURRENT_AS_FILEINFO | Phar::KEY_AS_FILENAME); } catch (UnexpectedValueException $e) { die('Could not open my.tar'); } catch (BadMethodCallException $e) { echo 'technically, this cannot happen'; } echo file_get_contents('phar:///path/to/my.tar/example.txt'); ?>
There is a big problem! It doesn't work but in console (tar -xvzf packagename.tar.gz) the file was unpacked! $ php -r "new \PharData('d:/Downloads/commithook-master.tar.gz');" PHP Fatal error: Uncaught exception 'UnexpectedValueException' with message 'phar error: "D:\Downloads\commithook-master.tar.gz" is a corrupted tar file (checksum mismatch of file "52 comment=4d08b1e311f074f7281c0f1c21912776ac51394b ")' in Command line code:1 Stack trace: #0 Command line code(1): PharData->__construct('d:/Downloads/co...') #1 {main} thrown in Command line code on line 1