©
本文档使用
php.cn手册 发布
(PHP >= 5.3.0, PECL phar >= 2.0.0)
PharData::__construct — Construct a non-executable tar or zip archive object
$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.
Example #1 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' );
?>
[#1] andkirby at gmail dot com [2015-01-09 23:22:21]
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