<?php require_once 'files/phar_oo_test.inc'; $phar = new Phar($fname); $phar->setInfoClass('SplFileInfo'); foreach ($phar as $name => $ent) { var_dump(str_replace(str_replace('\\', '/', dirname(__FILE__)), '*', $name)); var_dump($ent->getFilename()); var_dump($ent->getSize()); var_dump($ent->getType()); var_dump($ent->isWritable()); var_dump($ent->isReadable()); var_dump($ent->isExecutable()); var_dump($ent->isFile()); var_dump($ent->isDir()); var_dump($ent->isLink()); var_dump($ent->getCTime()); var_dump($ent->getMTime()); var_dump($ent->getATime()); } echo "==RECURSIVE==\n"; $phar = new Phar($fname); foreach (new RecursiveIteratorIterator($phar) as $name => $ent) { var_dump(str_replace(str_replace('\\', '/', dirname(__FILE__)), '*', $name)); var_dump(str_replace('\\', '/', $ent->getFilename())); var_dump($ent->getCompressedSize()); var_dump($ent->isCRCChecked()); var_dump($ent->isCRCChecked() ? $ent->getCRC32() : NULL); var_dump($ent->getPharFlags()); } ?>
<?php $pharconfig = 1; require_once 'files/phar_oo_test.inc'; $phar = new Phar($fname); $phar->setInfoClass('SplFileObject'); $f = $phar['a.csv']; echo "===1===\n"; foreach ($f as $k => $v) { echo "{$k}=>{$v}\n"; } $f->setFlags(SplFileObject::DROP_NEW_LINE); echo "===2===\n"; foreach ($f as $k => $v) { echo "{$k}=>{$v}\n"; } class MyCSVFile extends SplFileObject { function current() { return parent::fgetcsv(',', '"'); } } $phar->setInfoClass('MyCSVFile'); $v = $phar['a.csv']; echo "===3===\n"; while (!$v->eof()) { echo $v->key() . "=>" . join('|', $v->fgetcsv()) . "\n"; } echo "===4===\n"; $v->rewind();
<?php require_once 'files/phar_oo_test.inc'; $phar = new Phar($fname); $phar->setInfoClass(); foreach ($phar as $name => $ent) { var_dump($ent->getFilename()); if ($ent->isDir()) { var_dump('DIR'); } else { var_dump($ent->openFile()->fgets()); include $ent->getPathName(); } } ?> ===DONE===
<?php try { $pharconfig = 0; require_once 'files/phar_oo_test.inc'; $phar = new Phar($fname); $phar->setInfoClass('SplFileObject'); $phar['f.php'] = 'hi'; var_dump(isset($phar['f.php'])); echo $phar['f.php']; echo "\n"; unset($phar['f.php']); var_dump(isset($phar['f.php'])); } catch (BadMethodCallException $e) { echo "Exception: " . $e->getMessage() . "\n"; } ?> ===DONE=== <?php unlink(dirname(__FILE__) . '/files/phar_oo_012b.phar.php'); __halt_compiler(); ?>
<?php require_once 'files/phar_oo_test.inc'; class MyFile extends SplFileObject { function __construct($name) { echo __METHOD__ . "(" . str_replace(str_replace('\\', '/', dirname(__FILE__)), '*', $name) . ")\n"; parent::__construct($name); } } $phar = new Phar($fname); $phar->setInfoClass('MyFile'); $f = $phar['a.php']; $s = $f->fstat(); var_dump($s['atime']); var_dump($s['ctime']); var_dump($s['mtime']); var_dump($f->ftell()); var_dump($f->eof()); var_dump($f->fgets()); var_dump($f->eof()); var_dump($f->fseek(20)); var_dump($f->ftell()); var_dump($f->fgets()); var_dump($f->rewind()); var_dump($f->ftell()); var_dump($f->fgets()); var_dump($f->ftell()); ?> ===AGAIN===