说我有这样的网址:
http://www.mysite.com/forum/board1/sub-forum/topics/123
PHP中是否有一种简单的方法(不能使用HTAccess)来获取该URL并提取board1
,sub-forum
,topics
和123
以便我可以使用例如,他们在数据库中?有内置功能还是我必须自己编写?
谢谢,
詹姆斯
答案 0 :(得分:11)
explode('/', getenv('REQUEST_URI'));
如果您的环境恰好包含上述值中的查询字符串部分,这里有一个简洁的解决方法:
explode('/', strtok(getenv('REQUEST_URI'), '?'));
答案 1 :(得分:3)
您可以,但如果没有重定向请求,您的网络服务器只会为不存在的路径返回404错误。
但是,您可以使用http://your.site.com/index.php/foo/bar/baz
之类的网址,然后将网址拆分为@pestaa之类的部分,然后您可以将其解析为参数值。
答案 2 :(得分:2)
这取自我的MVC http://www.phpclasses.org/package/6363-PHP-Implements-the-MVC-design-pattern.html
链接已经过时了,我刚刚更新了它,因此它没有MVC内容,可以用getLoadDetails($ _ URL)调用;除了从文件夹路径获取数据之外,amd $ _URL与$ _GET完全相同。
function getLoadDetails(&$_URL){
$filePath = $_SERVER['REQUEST_URI'];
$filePath = explode("/", $filePath);
for($i = 0; $i < count($filePath); $i++){
$key = $filePath[$i];
$i++;
$val = $filePath[$i];
$keyName = urldecode($key);
$_URL[$keyName] = urldecode($val);
}
}
我有一个问题,如果你不能使用HTACCESS你打算如何处理文件夹路径请不要告诉我你的系统将为每个URL创建文件夹路径和索引文件,这将破坏你的服务器速度和你的主人会恨你。
答案 3 :(得分:1)