thinkphp 里的 pathinfo 里是怎么实现 get 传参的?

2016-07-03 13:31:56 +08:00
 NoBrain

例如 http://127.0.0.1/myfuck/index.php/Home/Index/delUser/user_id/2

但是 /user_id/2 这个是怎么实现 get 传参的?

如何能实现能使用$_get 来接收传递的 pathinfo 模式下传递的参数?

5541 次点击
所在节点    PHP
13 条回复
Jakesoft
2016-07-03 16:40:35 +08:00
好吧,竟然没人回答,是不是 v2er 都不屑于回答这种问题。

最简单的做法就是对$_SERVER["REQUEST_URI"]进行字符串切割,然后给$_GET 添加新的元素,当然我不确定 tp 是否用的此"最简单的做法"
RIcter
2016-07-03 16:42:31 +08:00
为啥不看看源码呢(
shyling
2016-07-03 17:19:05 +08:00
首先你要先让 webserver 把这个地址 route 到对应 php
然后就可以通过$_SERVER['PATH_INFO'] ||$_SERVER['REQUEST_URI'] 得到了
然后根据自己的逻辑给$_GET append ,因为这个是 kv 的,和整个 string 不同,规则要自定
NoBrain
2016-07-03 20:09:51 +08:00
@Jakesoft 我也是在用这个方法 但是太低端了。。实现不了
void1900
2016-07-03 20:39:36 +08:00
建议别用 thinkphp

用 laravel 等其他框架 ~
geeglo
2016-07-03 22:38:34 +08:00
@void1900 人家问怎么实现,你这建议...要不你来讲讲 laravel 的超优越的地方?
mitoop
2016-07-03 23:50:18 +08:00
Dispatcher 你可以看下这个类 的 dispatch 方法
void1900
2016-07-03 23:52:44 +08:00
@geeglo 我是认真的建议,你脾气好大。。。
flydogs
2016-07-04 08:08:48 +08:00
看源代码
NoBrain
2016-07-04 08:23:42 +08:00
@void1900 多谢提点
NoBrain
2016-07-04 08:24:36 +08:00
@shyling 跟你说的方法一样,已经实现了,想想,是我脑袋短路了两天 囧
rming
2016-07-04 10:23:06 +08:00
NoBrain fuck 你这都是啥关键词啊……
kancloud
2016-07-04 11:14:06 +08:00
3.2 版本的 TP 对于 pathinfo 变量的处理是合并到了 get 请求变量里面,但最新版本的 ThinkPHP5 对于 pathinfo 以及路由参数 不再通过 get 方式获取 而是建议使用 Request 对象的 param 方法统一获取当前请求的参数。 参考: http://www.kancloud.cn/manual/thinkphp5/118044

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/289951

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX