[prev in list] [next in list] [prev in thread] [next in thread]
List: pecl-cvs
Subject: [PECL-CVS] svn: / pecl/phar/trunk/phar_object.c pecl/phar/trunk/tests/tar/phar_convert_phar4.phpt ph
From: Greg_Beaver <cellog () php ! net>
Date: 2009-07-26 2:18:50
Message-ID: svn-cellog-1248574730-286341-2000337410 () svn ! php ! net
[Download RAW message or body]
cellog Sun, 26 Jul 2009 02:18:50 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=286341
Log:
fix generation of phar.phar in php 6, fix remaining tests broken by PHP 6 (and not by \
spl/other stuff in php6)
Changed paths:
U pecl/phar/trunk/phar_object.c
U pecl/phar/trunk/tests/tar/phar_convert_phar4.phpt
U php/php-src/branches/PHP_5_3/ext/phar/phar_object.c
U php/php-src/branches/PHP_5_3/ext/phar/tests/tar/phar_convert_phar4.phpt
U php/php-src/trunk/ext/phar/Makefile.frag
U php/php-src/trunk/ext/phar/phar/clicommand.inc
U php/php-src/trunk/ext/phar/phar/pharcommand.inc
U php/php-src/trunk/ext/phar/phar_object.c
A php/php-src/trunk/ext/phar/tests/readfile_edgecasesU.phpt
U php/php-src/trunk/ext/phar/tests/tar/phar_convert_phar4.phpt
["svn-diffs-286341.txt" (text/x-diff)]
Modified: pecl/phar/trunk/phar_object.c
===================================================================
--- pecl/phar/trunk/phar_object.c 2009-07-26 02:12:38 UTC (rev 286340)
+++ pecl/phar/trunk/phar_object.c 2009-07-26 02:18:50 UTC (rev 286341)
@@ -990,7 +990,9 @@
}
}
+#if PHP_MAJOR_VERSION >= 6
notfound:
+#endif
if (!mime_type) {
code = phar_file_type(&PHAR_G(mime_types), entry, &mime_type TSRMLS_CC);
}
Modified: pecl/phar/trunk/tests/tar/phar_convert_phar4.phpt
===================================================================
--- pecl/phar/trunk/tests/tar/phar_convert_phar4.phpt 2009-07-26 02:12:38 UTC (rev \
286340)
+++ pecl/phar/trunk/tests/tar/phar_convert_phar4.phpt 2009-07-26 02:18:50 UTC (rev \
286341) @@ -14,7 +14,7 @@
$phar = new Phar($fname);
$phar['a.txt'] = 'some text';
-$phar->setMetadata('hi');
+$phar->setMetadata(b'hi');
$phar->stopBuffering();
var_dump($phar->isFileFormat(Phar::TAR));
var_dump(strlen($phar->getStub()));
Modified: php/php-src/branches/PHP_5_3/ext/phar/phar_object.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/phar/phar_object.c 2009-07-26 02:12:38 UTC (rev \
286340)
+++ php/php-src/branches/PHP_5_3/ext/phar/phar_object.c 2009-07-26 02:18:50 UTC (rev \
286341) @@ -990,7 +990,9 @@
}
}
+#if PHP_MAJOR_VERSION >= 6
notfound:
+#endif
if (!mime_type) {
code = phar_file_type(&PHAR_G(mime_types), entry, &mime_type TSRMLS_CC);
}
Modified: php/php-src/branches/PHP_5_3/ext/phar/tests/tar/phar_convert_phar4.phpt
===================================================================
--- php/php-src/branches/PHP_5_3/ext/phar/tests/tar/phar_convert_phar4.phpt 2009-07-26 \
02:12:38 UTC (rev 286340)
+++ php/php-src/branches/PHP_5_3/ext/phar/tests/tar/phar_convert_phar4.phpt 2009-07-26 \
02:18:50 UTC (rev 286341) @@ -14,7 +14,7 @@
$phar = new Phar($fname);
$phar['a.txt'] = 'some text';
-$phar->setMetadata('hi');
+$phar->setMetadata(b'hi');
$phar->stopBuffering();
var_dump($phar->isFileFormat(Phar::TAR));
var_dump(strlen($phar->getStub()));
Modified: php/php-src/trunk/ext/phar/Makefile.frag
===================================================================
--- php/php-src/trunk/ext/phar/Makefile.frag 2009-07-26 02:12:38 UTC (rev 286340)
+++ php/php-src/trunk/ext/phar/Makefile.frag 2009-07-26 02:18:50 UTC (rev 286341)
@@ -37,7 +37,7 @@
-@echo "Generating phar.phar"
-@rm -f $(builddir)/phar.phar
-@rm -f $(srcdir)/phar.phar
- @$(PHP_PHARCMD_EXECUTABLE) $(PHP_PHARCMD_SETTINGS) $(builddir)/phar.php pack -f \
$(builddir)/phar.phar -a pharcommand -c auto -x \\.svn -p 0 -s \
$(srcdir)/phar/phar.php -h sha1 -b "$(PHP_PHARCMD_BANG)" $(srcdir)/phar/ \
+ @$(PHP_PHARCMD_EXECUTABLE) $(PHP_PHARCMD_SETTINGS) $(builddir)/phar.php pack -f \
$(builddir)/phar.phar -a pharcommand -c auto -x /\\.svn/ -p 0 -s \
$(srcdir)/phar/phar.php -h sha1 -b "$(PHP_PHARCMD_BANG)" \
$(srcdir)/phar/
-@chmod +x $(builddir)/phar.phar
install-pharcmd: pharcmd
Modified: php/php-src/trunk/ext/phar/phar/clicommand.inc
===================================================================
--- php/php-src/trunk/ext/phar/phar/clicommand.inc 2009-07-26 02:12:38 UTC (rev \
286340)
+++ php/php-src/trunk/ext/phar/phar/clicommand.inc 2009-07-26 02:18:50 UTC (rev \
286341) @@ -58,15 +58,15 @@
}
}
- if (isset($this->args[''])) {
+ if (isset($this->args[b''])) {
if ($i >= $argc) {
- if (isset($this->args['']['require']) && $this->args['']['require']) {
+ if (isset($this->args[b'']['require']) && $this->args[b'']['require']) {
self::error("Missing default trailing arguments to command $command, check \
${argv[0]} help\n"); }
} else {
- $this->args['']['val'] = array();
+ $this->args[b'']['val'] = array();
while($i < $argc) {
- $this->args['']['val'][] = $argv[$i++];
+ $this->args[b'']['val'][] = $argv[$i++];
}
}
} else if ($i < $argc) {
@@ -122,10 +122,10 @@
$func = $prefix . $sub . '_' . $what;
$what = str_replace('_', '-', $what);
if ($r->hasMethod($func)) {
- if (!isset($a[$what])) {
- $a[$what] = array();
+ if (!isset($a[(binary)$what])) {
+ $a[(binary)$what] = array();
}
- $a[$what][$sub] = /*$m->class . '::' .*/ $func;
+ $a[(binary)$what][$sub] = /*$m->class . '::' .*/ $func;
}
}
}
Modified: php/php-src/trunk/ext/phar/phar/pharcommand.inc
===================================================================
--- php/php-src/trunk/ext/phar/phar/pharcommand.inc 2009-07-26 02:12:38 UTC (rev \
286340)
+++ php/php-src/trunk/ext/phar/phar/pharcommand.inc 2009-07-26 02:18:50 UTC (rev \
286341) @@ -57,18 +57,18 @@
static function phar_args($which, $phartype)
{
$phar_args = array(
- 'a' => array(
+ b'a' => array(
'typ' => 'alias',
'val' => NULL,
'inf' => '<alias> Provide an alias name for the phar file.'
),
- 'b' => array(
+ b'b' => array(
'typ' => 'any',
'val' => NULL,
'inf' => '<bang> Hash-bang line to start the archive (e.g. #!/usr/bin/php). \
The hash '
.' mark itself \'#!\' and the newline character are optional.'
),
- 'c' => array(
+ b'c' => array(
'typ' => 'compalg',
'val' => NULL,
'inf' => '<algo> Compression algorithm.',
@@ -78,43 +78,43 @@
'auto' => 'Automatically select compression algorithm'
)
),
- 'e' => array(
+ b'e' => array(
'typ' => 'entry',
'val' => NULL,
'inf' => '<entry> Name of entry to work on (must include PHAR internal \
directory name if any).' ),
- 'f' => array(
+ b'f' => array(
'typ' => $phartype,
'val' => NULL,
'inf' => '<file> Specifies the phar file to work on.'
),
- 'h' => array(
+ b'h' => array(
'typ' => 'select',
'val' => NULL,
'inf' => '<method> Selects the hash algorithmn.',
'select' => array('md5' => 'MD5','sha1' => 'SHA1')
),
- 'i' => array(
+ b'i' => array(
'typ' => 'regex',
'val' => NULL,
'inf' => '<regex> Specifies a regular expression for input files.'
),
- 'k' => array(
+ b'k' => array(
'typ' => 'any',
'val' => NULL,
'inf' => '<index> Subscription index to work on.',
),
- 'l' => array(
+ b'l' => array(
'typ' => 'int',
'val' => 0,
'inf' => '<level> Number of preceeding subdirectories to strip from file \
entries', ),
- 'm' => array(
+ b'm' => array(
'typ' => 'any',
'val' => NULL,
'inf' => '<meta> Meta data to store with entry (serialized php data).'
),
- 'p' => array(
+ b'p' => array(
'typ' => 'loader',
'val' => NULL,
'inf' => '<loader> Location of PHP_Archive class file (pear list-files \
PHP_Archive).' @@ -126,17 +126,17 @@
.'this package and load it to ensure class Phar is present.'
,
),
- 's' => array(
+ b's' => array(
'typ' => 'file',
'val' => NULL,
'inf' => '<stub> Select the stub file.'
),
- 'x' => array(
+ b'x' => array(
'typ' => 'regex',
'val' => NULL,
'inf' => '<regex> Regular expression for input files to exclude.'
),
- 'y' => array(
+ b'y' => array(
'typ' => 'privkey',
'val' => NULL,
'inf' => '<key> Private key for OpenSSL signing.',
@@ -144,33 +144,34 @@
);
if (extension_loaded('zlib')) {
- $phar_args['c']['select']['gz'] = 'GZip compression';
- $phar_args['c']['select']['gzip'] = 'GZip compression';
+ $phar_args[b'c']['select']['gz'] = 'GZip compression';
+ $phar_args[b'c']['select']['gzip'] = 'GZip compression';
}
if (extension_loaded('bz2')) {
- $phar_args['c']['select']['bz2'] = 'BZip2 compression';
- $phar_args['c']['select']['bzip2'] = 'BZip2 compression';
+ $phar_args[b'c']['select']['bz2'] = 'BZip2 compression';
+ $phar_args[b'c']['select']['bzip2'] = 'BZip2 compression';
}
$hash_avail = Phar::getSupportedSignatures();
- $hash_optional = array('SHA-256' => 'SHA256',
- 'SHA-512' => 'SHA512',
- 'OpenSSL' => 'OpenSSL');
- if (!in_array('OpenSSL', $hash_avail)) {
- unset($phar_args['y']);
+ $hash_optional = array(b'SHA-256' => b'SHA256',
+ b'SHA-512' => b'SHA512',
+ b'OpenSSL' => b'OpenSSL');
+ if (!in_array(b'OpenSSL', $hash_avail)) {
+ unset($phar_args[b'y']);
}
foreach($hash_optional as $key => $name) {
if (in_array($key, $hash_avail)) {
- $phar_args['h']['select'][strtolower($name)] = $name;
+ $phar_args[b'h']['select'][strtolower($name)] = $name;
}
}
$args = array();
+ $which = (binary)$which;
foreach($phar_args as $lkey => $cfg) {
- $ukey = strtoupper($lkey);
+ $ukey = (binary) strtoupper($lkey);
$required = strpos($which, $ukey) !== false;
$optional = strpos($which, $lkey) !== false;
@@ -400,9 +401,9 @@
$arg = self::cli_arg_typ_string($arg, $cfg, $key);
$hash_avail = Phar::getSupportedSignatures();
- if ($arg && !in_array('OpenSSL', $hash_avail))
+ if ($arg && !in_array(b'OpenSSL', $hash_avail))
{
- self::error("Cannot specifiy private key without OpenSSL support.\n");
+ self::error("Cannot specify private key without OpenSSL support.\n");
}
return $arg;
}
@@ -457,7 +458,7 @@
{
$args = self::phar_args('abcFhilpsxy', 'pharnew');
- $args[''] = array(
+ $args[b''] = array(
'typ' => 'any',
'val' => NULL,
'required' => 1,
@@ -559,17 +560,17 @@
self::error("Creating phar files is disabled, Phar::canWrite() returned \
false.\n"); }
- $alias = $this->args['a']['val'];
- $hashbang = $this->args['b']['val'];
- $archive = $this->args['f']['val'];
- $hash = $this->args['h']['val'];
- $privkey = $this->args['y']['val'];
- $regex = $this->args['i']['val'];
- $level = $this->args['l']['val'];
- $loader = $this->args['p']['val'];
- $stub = $this->args['s']['val'];
- $invregex = $this->args['x']['val'];
- $input = $this->args['']['val'];
+ $alias = $this->args[b'a']['val'];
+ $hashbang = $this->args[b'b']['val'];
+ $archive = $this->args[b'f']['val'];
+ $hash = $this->args[b'h']['val'];
+ $privkey = $this->args[b'y']['val'];
+ $regex = $this->args[b'i']['val'];
+ $level = $this->args[b'l']['val'];
+ $loader = $this->args[b'p']['val'];
+ $stub = $this->args[b's']['val'];
+ $invregex = $this->args[b'x']['val'];
+ $input = $this->args[b'']['val'];
$hash = self::phar_check_hash($hash, $privkey);
@@ -589,7 +590,7 @@
$this->phar_set_stub_end($phar, $stub, $loader);
- switch($this->args['c']['val']) {
+ switch($this->args[b'c']['val']) {
case 'gz':
case 'gzip':
$phar->compressFiles(Phar::GZ);
@@ -673,9 +674,9 @@
$entry = substr($entry, $p+1);
}
- if ($noloader && $entry == 'phar.inc') {
- return;
- }
+ if ($noloader && $entry == 'phar.inc') {
+ return;
+ }
echo "$entry\n";
@@ -721,8 +722,8 @@
*/
public function phar_dir_operation(RecursiveIteratorIterator $dir, $func, array \
$args = array()) {
- $regex = $this->args['i']['val'];
- $invregex= $this->args['x']['val'];
+ $regex = $this->args[b'i']['val'];
+ $invregex= $this->args[b'x']['val'];
if (isset($regex)) {
$dir = new RegexIterator($dir, $regex);
@@ -771,7 +772,7 @@
{
$this->phar_dir_operation(
new DirectoryTreeIterator(
- $this->args['f']['val']),
+ $this->args[b'f']['val']),
array($this, 'phar_dir_echo')
);
}
@@ -812,7 +813,7 @@
{
$a = $this->phar_dir_operation(
new DirectoryGraphIterator(
- $this->args['f']['val']),
+ $this->args[b'f']['val']),
array($this, 'phar_dir_echo')
);
if (!$a) {
@@ -843,7 +844,7 @@
{
$args = self::phar_args('Fix', 'phar');
- $args[''] = array(
+ $args[b''] = array(
'type' => 'dir',
'val' => '.',
'inf' => ' Directory to extract to (defaults to \'.\').',
@@ -862,7 +863,7 @@
*/
public function cli_cmd_run_extract()
{
- $dir = $this->args['']['val'];
+ $dir = $this->args[b'']['val'];
if (is_array($dir)) {
if (count($dir) != 1) {
@@ -872,7 +873,7 @@
}
}
- $phar = $this->args['f']['val'];
+ $phar = $this->args[b'f']['val'];
$base = $phar->getPathname();
$bend = strpos($base, '.phar');
$bend = strpos($base, '/', $bend);
@@ -951,8 +952,8 @@
*/
public function cli_cmd_run_delete()
{
- $phar = $this->args['f']['val'];
- $entry = $this->args['e']['val'];
+ $phar = $this->args[b'f']['val'];
+ $entry = $this->args[b'e']['val'];
$phar->startBuffering();
unset($phar[$entry]);
@@ -977,7 +978,7 @@
static function cli_cmd_arg_add()
{
$args = self::phar_args('acFilx', 'phar');
- $args[''] = array(
+ $args[b''] = array(
'type' => 'any',
'val' => NULL,
'required' => 1,
@@ -995,12 +996,12 @@
*/
public function cli_cmd_run_add()
{
- $compress= $this->args['c']['val'];
- $phar = $this->args['f']['val'];
- $regex = $this->args['i']['val'];
- $level = $this->args['l']['val'];
- $invregex= $this->args['x']['val'];
- $input = $this->args['']['val'];
+ $compress= $this->args[b'c']['val'];
+ $phar = $this->args[b'f']['val'];
+ $regex = $this->args[b'i']['val'];
+ $level = $this->args[b'l']['val'];
+ $invregex= $this->args[b'x']['val'];
+ $input = $this->args[b'']['val'];
$phar->startBuffering();
@@ -1036,7 +1037,7 @@
public function cli_cmd_arg_stub_set()
{
$args = self::phar_args('bFps', 'phar');
- $args['s']['val'] = 'php://stdin';
+ $args[b's']['val'] = 'php://stdin';
return $args;
}
// }}}
@@ -1048,10 +1049,10 @@
*/
public function cli_cmd_run_stub_set()
{
- $hashbang = $this->args['b']['val'];
- $phar = $this->args['f']['val'];
- $stub = $this->args['s']['val'];
- $loader = $this->args['p']['val'];
+ $hashbang = $this->args[b'b']['val'];
+ $phar = $this->args[b'f']['val'];
+ $stub = $this->args[b's']['val'];
+ $loader = $this->args[b'p']['val'];
$this->phar_set_stub_begin($phar, $stub, $loader, $hashbang);
$this->phar_set_stub_end($phar, $stub, $loader);
@@ -1078,7 +1079,7 @@
public function cli_cmd_arg_stub_get()
{
$args = self::phar_args('Fs', 'phar');
- $args['s']['val'] = 'php://stdin';
+ $args[b's']['val'] = 'php://stdin';
return $args;
}
// }}}
@@ -1093,8 +1094,8 @@
*/
public function cli_cmd_run_stub_get($args)
{
- $phar = $this->args['f']['val'];
- $stub = $this->args['s']['val'];
+ $phar = $this->args[b'f']['val'];
+ $stub = $this->args[b's']['val'];
file_put_contents($stub, $phar->getStub());
}
@@ -1131,10 +1132,10 @@
*/
public function cli_cmd_run_compress()
{
- $phar = $this->args['f']['val'];
- $entry = $this->args['e']['val'];
+ $phar = $this->args[b'f']['val'];
+ $entry = $this->args[b'e']['val'];
- switch($this->args['c']['val']) {
+ switch($this->args[b'c']['val']) {
case 'gz':
case 'gzip':
if (isset($entry)) {
@@ -1191,9 +1192,9 @@
*/
public function cli_cmd_run_sign()
{
- $phar = $this->args['f']['val'];
- $hash = $this->args['h']['val'];
- $privkey = $this->args['y']['val'];
+ $phar = $this->args[b'f']['val'];
+ $hash = $this->args[b'h']['val'];
+ $privkey = $this->args[b'y']['val'];
$hash = self::phar_check_hash($hash, $privkey);
@@ -1238,10 +1239,10 @@
*/
public function cli_cmd_run_meta_set()
{
- $phar = $this->args['f']['val'];
- $entry = $this->args['e']['val'];
- $index = $this->args['k']['val'];
- $meta = $this->args['m']['val'];
+ $phar = $this->args[b'f']['val'];
+ $entry = $this->args[b'e']['val'];
+ $index = $this->args[b'k']['val'];
+ $meta = $this->args[b'm']['val'];
$phar->startBuffering();
@@ -1315,9 +1316,9 @@
*/
public function cli_cmd_run_meta_get()
{
- $phar = $this->args['f']['val'];
- $entry = $this->args['e']['val'];
- $index = $this->args['k']['val'];
+ $phar = $this->args[b'f']['val'];
+ $entry = $this->args[b'e']['val'];
+ $index = $this->args[b'k']['val'];
if (isset($entry)) {
if (!$phar[$entry]->hasMetadata()) {
@@ -1382,9 +1383,9 @@
*/
public function cli_cmd_run_meta_del()
{
- $phar = $this->args['f']['val'];
- $entry = $this->args['e']['val'];
- $index = $this->args['k']['val'];
+ $phar = $this->args[b'f']['val'];
+ $entry = $this->args[b'e']['val'];
+ $index = $this->args[b'k']['val'];
if (isset($entry)) {
if (isset($index)) {
@@ -1455,8 +1456,8 @@
*/
public function cli_cmd_run_info()
{
- $phar = $this->args['f']['val'];
- $index = $this->args['k']['val'];
+ $phar = $this->args[b'f']['val'];
+ $index = $this->args[b'k']['val'];
$hash = $phar->getSignature();
$infos = array();
Modified: php/php-src/trunk/ext/phar/phar_object.c
===================================================================
--- php/php-src/trunk/ext/phar/phar_object.c 2009-07-26 02:12:38 UTC (rev 286340)
+++ php/php-src/trunk/ext/phar/phar_object.c 2009-07-26 02:18:50 UTC (rev 286341)
@@ -990,7 +990,9 @@
}
}
+#if PHP_MAJOR_VERSION >= 6
notfound:
+#endif
if (!mime_type) {
code = phar_file_type(&PHAR_G(mime_types), entry, &mime_type TSRMLS_CC);
}
Added: php/php-src/trunk/ext/phar/tests/readfile_edgecasesU.phpt
===================================================================
--- php/php-src/trunk/ext/phar/tests/readfile_edgecasesU.phpt \
(rev 0)
+++ php/php-src/trunk/ext/phar/tests/readfile_edgecasesU.phpt 2009-07-26 02:18:50 UTC \
(rev 286341) @@ -0,0 +1,61 @@
+--TEST--
+Phar: test edge cases of readfile() function interception
+--SKIPIF--
+<?php if (!extension_loaded("phar")) die("skip");?>
+<?php if (version_compare(PHP_VERSION, "6.0", "<")) die("skip requires php 6.0 or \
newer"); ?> +--INI--
+phar.readonly=0
+--FILE--
+<?php
+Phar::interceptFileFuncs();
+$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
+$pname = 'phar://' . $fname;
+
+chdir(dirname(__FILE__));
+file_put_contents($fname, "blah\n");
+file_put_contents("foob", "test\n");
+readfile($fname);
+unlink($fname);
+mkdir($pname . '/oops');
+file_put_contents($pname . '/foo/hi', '<?php
+readfile("foo/" . basename(__FILE__));
+$context = stream_context_create();
+readfile("foob");
+set_include_path("' . addslashes(dirname(__FILE__)) . '");
+readfile("foob", true);
+readfile("./hi", 0, $context);
+readfile("../oops");
+?>
+');
+include $pname . '/foo/hi';
+?>
+===DONE===
+--CLEAN--
+<?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . \
'.phar.php'); ?> +<?php rmdir(dirname(__FILE__) . '/poo'); ?>
+<?php unlink(dirname(__FILE__) . '/foob'); ?>
+--EXPECTF--
+blah
+<?php
+readfile("foo/" . basename(__FILE__));
+$context = stream_context_create();
+readfile("foob");
+set_include_path("%stests");
+readfile("foob", true);
+readfile("./hi", 0, $context);
+readfile("../oops");
+?>
+test
+test
+<?php
+readfile("foo/" . basename(__FILE__));
+$context = stream_context_create();
+readfile("foob");
+set_include_path("%stests");
+readfile("foob", true);
+readfile("./hi", 0, $context);
+readfile("../oops");
+?>
+
+Warning: readfile(phar://%sreadfile_edgecasesU.phar.php/oops): failed to open \
stream: phar error: path "oops" is a directory in \
phar://%sreadfile_edgecasesU.phar.php/foo/hi on line %d +===DONE===
\ No newline at end of file
Modified: php/php-src/trunk/ext/phar/tests/tar/phar_convert_phar4.phpt
===================================================================
--- php/php-src/trunk/ext/phar/tests/tar/phar_convert_phar4.phpt 2009-07-26 02:12:38 \
UTC (rev 286340)
+++ php/php-src/trunk/ext/phar/tests/tar/phar_convert_phar4.phpt 2009-07-26 02:18:50 \
UTC (rev 286341) @@ -14,7 +14,7 @@
$phar = new Phar($fname);
$phar['a.txt'] = 'some text';
-$phar->setMetadata('hi');
+$phar->setMetadata(b'hi');
$phar->stopBuffering();
var_dump($phar->isFileFormat(Phar::TAR));
var_dump(strlen($phar->getStub()));
--
PECL CVS Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic