return $_SERVER['PATH_INFO'];
} elseif (isset($_SERVER['REQUEST_URI']) &&
isset($_SERVER['SCRIPT_NAME'])) {
- if (basename($_SERVER['SCRIPT_NAME']) == 'index.php') {
- $search = array(dirname($_SERVER['SCRIPT_NAME']) . '/',
- 'index.php');
- } else {
- $search = array($_SERVER['SCRIPT_NAME']);
+ $search = Horde_String::common($_SERVER['SCRIPT_NAME'], $_SERVER['REQUEST_URI']);
+ if (substr($search, -1) == '/') {
+ $search = substr($search, 0, -1);
}
+ $search = array($search);
if (!empty($_SERVER['QUERY_STRING'])) {
$search[] = '?' . $_SERVER['QUERY_STRING'];
}
- return str_replace($search, '', $_SERVER['REQUEST_URI']);
+ $path = str_replace($search, '', $_SERVER['REQUEST_URI']);
+ if ($path == '/') {
+ $path = '';
+ }
+ return $path;
}
return '';
<?php
/**
+ * Require our basic test case definition
+ */
+require_once dirname(__FILE__) . '/Autoload.php';
+
+/**
* @author Jan Schneider <jan@horde.org>
* @license http://www.fsf.org/copyleft/lgpl.html LGPL
* @category Horde
* @package Util
* @subpackage UnitTests
*/
-
class Horde_Util_UtilTest extends PHPUnit_Framework_TestCase
{
public function testAddParameter()
$_SERVER['REQUEST_URI'] = '/horde/path.php/foo/bar?baz';
$_SERVER['QUERY_STRING'] = 'baz';
$this->assertEquals('/foo/bar', Horde_Util::getPathInfo());
+ $_SERVER['REQUEST_URI'] = '/horde/foo/bar?baz';
+ $this->assertEquals('/foo/bar', Horde_Util::getPathInfo());
$_SERVER['REQUEST_URI'] = '/horde/';
$_SERVER['SCRIPT_NAME'] = '/horde/index.php';