• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 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