这是我的网址: http://localhost/framework/index.php
echo $_SERVER['REQUEST_URI'];
输出:/ framework/index.php
但如果我的网址是:
输出结果为:
/framework/
如果我移动文件,是的,你明白了。
如何获取文件夹/最终index.php文件后的内容?我的想法是将index.php作为前端控制器。
如果我有:
http://localhost/framework/index.php/test/test
我只想要测试/测试部分。
http://localhost/framework/test/test
我只想要测试/测试部分。
答案 0 :(得分:5)
您可以自动检测基础uri并将其删除,留下测试/测试部分。
if(!empty($_SERVER['PATH_INFO']))
{
// Uri info does not contain docroot or index
$uri = $_SERVER['PATH_INFO'];
}
else
{
if(!empty($_SERVER['REQUEST_URI']) && !empty($_SERVER['HTTP_HOST']))
{
$fullUrl = 'http://'
. ((isset($_SERVER['HTTP_HOST'])) ? $_SERVER['HTTP_HOST'] : '')
. ((isset($_SERVER['REQUEST_URI'])) ? $_SERVER['REQUEST_URI'] : '');
$uri = parse_url($fullUrl, PHP_URL_PATH);
}
else if(!empty($_SERVER['PHP_SELF']))
{
$uri = $_SERVER['PHP_SELF'];
}
}
$baseUri = substr($_SERVER['SCRIPT_NAME'], 0, strrpos($_SERVER['SCRIPT_NAME'], "/")+1);
$uri = str_replace($baseUri, '', $uri);
编辑:上面的mAu评论是正确的。我假设你已经在使用mod重写。