return $_SERVER['PATH_INFO'];
} elseif (isset($_SERVER['REQUEST_URI']) &&
isset($_SERVER['SCRIPT_NAME'])) {
- $search = array((basename($_SERVER['SCRIPT_NAME']) == 'index.php') ? dirname($_SERVER['SCRIPT_NAME']) . '/' : $_SERVER['SCRIPT_NAME']);
- $replace = array('');
+ if (basename($_SERVER['SCRIPT_NAME']) == 'index.php') {
+ $search = array(dirname($_SERVER['SCRIPT_NAME']) . '/',
+ 'index.php');
+ } else {
+ $search = array($_SERVER['SCRIPT_NAME']);
+ }
if (!empty($_SERVER['QUERY_STRING'])) {
$search[] = '?' . $_SERVER['QUERY_STRING'];
- $replace[] = '';
}
- return str_replace($search, $replace, $_SERVER['REQUEST_URI']);
+ return str_replace($search, '', $_SERVER['REQUEST_URI']);
}
return '';
'test?bar=2&baz=3',
(string)Horde_Util::removeParameter($url, 'foo'));
}
+
+ public function testGetPathInfo()
+ {
+ $this->assertEquals('', Horde_Util::getPathInfo());
+
+ $_SERVER['SERVER_SOFTWARE'] = '';
+ $_SERVER['PATH_INFO'] = '';
+ $this->assertEquals('', Horde_Util::getPathInfo());
+
+ $_SERVER['PATH_INFO'] = '/foo/bar';
+ $this->assertEquals('/foo/bar', Horde_Util::getPathInfo());
+
+ $_SERVER['SERVER_SOFTWARE'] = 'lighttpd/1.4.26';
+ $_SERVER['PATH_INFO'] = '';
+ $_SERVER['REQUEST_URI'] = '/horde/path.php';
+ $_SERVER['SCRIPT_NAME'] = '/horde/path.php';
+ $this->assertEquals('', Horde_Util::getPathInfo());
+ $_SERVER['REQUEST_URI'] = '/horde/path.php?baz';
+ $_SERVER['QUERY_STRING'] = 'baz';
+ $this->assertEquals('', Horde_Util::getPathInfo());
+
+ $_SERVER['REQUEST_URI'] = '/horde/path.php/foo/bar';
+ $_SERVER['SCRIPT_NAME'] = '/horde/path.php';
+ $_SERVER['QUERY_STRING'] = '';
+ $this->assertEquals('/foo/bar', Horde_Util::getPathInfo());
+ $_SERVER['REQUEST_URI'] = '/horde/path.php/foo/bar?baz';
+ $_SERVER['QUERY_STRING'] = 'baz';
+ $this->assertEquals('/foo/bar', Horde_Util::getPathInfo());
+
+ $_SERVER['REQUEST_URI'] = '/horde/';
+ $_SERVER['SCRIPT_NAME'] = '/horde/index.php';
+ $this->assertEquals('', Horde_Util::getPathInfo());
+
+ $_SERVER['REQUEST_URI'] = '/horde/index.php';
+ $_SERVER['SCRIPT_NAME'] = '/horde/index.php';
+ $_SERVER['QUERY_STRING'] = '';
+ $this->assertEquals('', Horde_Util::getPathInfo());
+ $_SERVER['REQUEST_URI'] = '/horde/index.php?baz';
+ $_SERVER['QUERY_STRING'] = 'baz';
+ $this->assertEquals('', Horde_Util::getPathInfo());
+
+ $_SERVER['REQUEST_URI'] = '/horde/index.php/foo/bar';
+ $_SERVER['SCRIPT_NAME'] = '/horde/index.php';
+ $_SERVER['QUERY_STRING'] = '';
+ $this->assertEquals('/foo/bar', Horde_Util::getPathInfo());
+ $_SERVER['REQUEST_URI'] = '/horde/index.php/foo/bar?baz';
+ $_SERVER['QUERY_STRING'] = 'baz';
+ $this->assertEquals('/foo/bar', Horde_Util::getPathInfo());
+ }
}