首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP从URL路径获取参数

问PHP从URL路径获取参数
EN

Stack Overflow用户
提问于 2010-11-18 18:49:27
回答 4查看 10.2K关注 0票数 7

假设我有一个这样的url:

http://www.mysite.com/forum/board1/sub-forum/topics/123

在PHP中有没有一种简单的方法(不能使用HTAccess)来获取URL并提取board1、sub-forum、topics和123,这样我就可以在数据库中使用它们了?有没有内置的函数,还是我必须自己写?

谢谢,

詹姆斯

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-18 18:51:03

代码语言:javascript
复制
explode('/', getenv('REQUEST_URI'));

如果您的环境恰好在上面的值中包含了查询字符串部分,这里有一个简单的解决方法:

代码语言:javascript
复制
explode('/', strtok(getenv('REQUEST_URI'), '?'));
票数 12
EN

Stack Overflow用户

发布于 2010-11-18 18:53:45

你可以,但是如果不重定向请求,你的non服务器只会为不存在的路径返回404错误。

但是,您可以使用像http://your.site.com/index.php/foo/bar/baz这样的url,然后将url拆分成像@pestaa这样的部分,然后可以将这些部分解析为参数值。

票数 4
EN

Stack Overflow用户

发布于 2010-11-18 19:05:47

这是从我的MVC http://www.phpclasses.org/package/6363-PHP-Implements-the-MVC-design-pattern.html中获取的

这个链接是过时的,我刚刚更新了它,所以它没有MVC的东西,这可以用getLoadDetails( $_URL )来调用;除了从文件夹路径中获取数据之外,$_URL将与$_GET完全相同。

代码语言:javascript
复制
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,这将垃圾你的服务器速度和你的主机会恨你。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4213946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档