} else if ((pos_p = strstr(filename, ".phar")) != NULL) {
*ext_str = pos_p;
*ext_len = 5;
+ } else if ((pos_p = strstr(filename, ".php")) != NULL) {
+ *ext_str = pos_p;
+ *ext_len = 4;
} else {
/* We have an alias with no extension, so locate the first / and fail */
*ext_str = strstr(filename, "/");
phar->fp = phar->internal_file->fp;
if (phar->internal_file->fp == phar->phar->fp) {
phar->zero = phar->internal_file->offset_within_phar;
+ if (!phar->is_tar && !phar->is_zip) {
+ phar->zero += phar->phar->internal_file_start;
+ }
}
}
php_stream_seek(phar->fp, phar->zero, SEEK_SET);
--- /dev/null
+<?php
+@unlink(dirname(__FILE__) . '/frontcontroller.phar');
+$a = new Phar(dirname(__FILE__) . '/frontcontroller.phar');
+$a['a.php'] = 'hio';
+$a['a.jpg'] = 'hio';
+$a['a.phps'] = '<?php function hio(){}';
+$a->setStub('<?php
+Phar::webPhar();
+echo "oops did not run\n";
+var_dump($_ENV, $_SERVER);
+__HALT_COMPILER();');
+?>
Phar front controller
--SKIPIF--
<?php if (!extension_loaded("phar")) die("skip"); ?>
---INI--
-phar.require_hash=0
-phar.readonly=0
--ENV--
-REQUEST_URI=/frontcontroller1.phar.php/a.jpg
---FILE--
-<?php
-$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
-$pname = 'phar://' . $fname;
-
-$a = new Phar($fname);
-$a['a.jpg'] = 'hio';
-$a->setStub('<?php
-Phar::webPhar();
-__HALT_COMPILER();');
-
-$_SERVER['REQUEST_URI'] = '/' . basename(__FILE__, '.php') . '.phar.php/a.jpg';
-include $fname;
-?>
-===DONE===
---CLEAN--
-<?php
-unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php');
-unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phartmp.php');
-__HALT_COMPILER();
-?>
+SCRIPT_NAME=/frontcontroller1.php/a.jpg
+REQUEST_URI=/frontcontroller1.php/a.jpg
+--FILE_EXTERNAL--
+frontcontroller.phar
--EXPECTHEADERS--
Content-type: image/jpeg
Content-length: 3
--TEST--
-Phar front controller php
+Phar front controller PHP test
--SKIPIF--
<?php if (!extension_loaded("phar")) die("skip"); ?>
---INI--
-phar.require_hash=0
-phar.readonly=0
---FILE--
-<?php
-$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
-$pname = 'phar://' . $fname;
-
-$a = new Phar($fname);
-$a['a.php'] = 'hio';
-$a->setStub('<?php
-Phar::webPhar();
-__HALT_COMPILER();');
-
-$_SERVER['REQUEST_URI'] = '/' . basename(__FILE__, '.php') . '.phar.php/a.php';
-include $fname;
-?>
-===DONE===
---CLEAN--
-<?php
-unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php');
-unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phartmp.php');
-__HALT_COMPILER();
-?>
+--ENV--
+SCRIPT_NAME=/frontcontroller2.php/a.php
+REQUEST_URI=/frontcontroller2.php/a.php
+--FILE_EXTERNAL--
+frontcontroller.phar
--EXPECTHEADERS--
Content-type: text/html
--EXPECT--
Phar front controller phps
--SKIPIF--
<?php if (!extension_loaded("phar")) die("skip"); ?>
---INI--
-phar.require_hash=0
-phar.readonly=0
---FILE--
-<?php
-$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
-$pname = 'phar://' . $fname;
-
-$a = new Phar($fname);
-$a['a.phps'] = '<?php function hio(){}';
-$a->setStub('<?php
-Phar::webPhar();
-__HALT_COMPILER();');
-
-$_SERVER['REQUEST_URI'] = '/' . basename(__FILE__, '.php') . '.phar.php/a.phps';
-include $fname;
-?>
-===DONE===
---CLEAN--
-<?php
-unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php');
-unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phartmp.php');
-__HALT_COMPILER();
-?>
+--ENV--
+SCRIPT_NAME=/frontcontroller3.php/a.phps
+REQUEST_URI=/frontcontroller3.php/a.phps
+--FILE_EXTERNAL--
+frontcontroller.phar
--EXPECTHEADERS--
Content-type: text/html
--EXPECT--