mirror of
https://github.com/php/php-src.git
synced 2024-10-20 16:02:44 +00:00
de5aaaa74c
which then allows easy creation of tar/zip-based phar archives with a simple rename even when phar.readonly=1. Plug the hole very tightly, allowing read access to files, and also excluding them from opendir() output
46 lines
1.4 KiB
PHP
46 lines
1.4 KiB
PHP
--TEST--
|
|
Phar: mkdir/rmdir test tar-based
|
|
--SKIPIF--
|
|
<?php if (!extension_loaded("phar")) die("skip"); ?>
|
|
--INI--
|
|
phar.readonly=0
|
|
phar.require_hash=0
|
|
--FILE--
|
|
<?php
|
|
$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.tar.php';
|
|
$pname = 'phar://' . $fname;
|
|
$fname2 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.1.phar.php';
|
|
$pname2 = 'phar://' . $fname2;
|
|
$fname3 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.2.phar.php';
|
|
$pname3 = 'phar://' . $fname3;
|
|
$phar = new Phar($fname);
|
|
var_dump($phar->isFileFormat(Phar::TAR));
|
|
|
|
$phar->addEmptyDir('test');
|
|
var_dump(isset($phar['.phar/stub.php']));
|
|
var_dump($phar['test']->isDir());
|
|
var_dump($phar['test/']->isDir());
|
|
copy($fname, $fname2);
|
|
mkdir($pname . '/another/dir/');
|
|
var_dump($phar['another/dir']->isDir());
|
|
rmdir($pname . '/another/dir/');
|
|
copy($fname, $fname3);
|
|
clearstatcache();
|
|
var_dump(file_exists($pname . '/another/dir/'));
|
|
var_dump(file_exists($pname2 . '/test/'));
|
|
var_dump(file_exists($pname3 . '/another/dir/'));
|
|
?>
|
|
--CLEAN--
|
|
<?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.tar.php'); ?>
|
|
<?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.1.phar.php'); ?>
|
|
<?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.2.phar.php'); ?>
|
|
--EXPECT--
|
|
bool(true)
|
|
bool(false)
|
|
bool(true)
|
|
bool(true)
|
|
bool(true)
|
|
bool(false)
|
|
bool(true)
|
|
bool(false)
|