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