V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NoBrain
V2EX  ›  PHP

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

  •  
  •   NoBrain · 2016-07-03 13:31:56 +08:00 · 5390 次点击
    这是一个创建于 2847 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    13 条回复    2016-07-04 11:14:06 +08:00
    Jakesoft
        1
    Jakesoft  
       2016-07-03 16:40:35 +08:00 via iPhone
    好吧,竟然没人回答,是不是 v2er 都不屑于回答这种问题。

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

    用 laravel 等其他框架 ~
    geeglo
        6
    geeglo  
       2016-07-03 22:38:34 +08:00 via iPhone
    @void1900 人家问怎么实现,你这建议...要不你来讲讲 laravel 的超优越的地方?
    mitoop
        7
    mitoop  
       2016-07-03 23:50:18 +08:00
    Dispatcher 你可以看下这个类 的 dispatch 方法
    void1900
        8
    void1900  
       2016-07-03 23:52:44 +08:00
    @geeglo 我是认真的建议,你脾气好大。。。
    flydogs
        9
    flydogs  
       2016-07-04 08:08:48 +08:00
    看源代码
    NoBrain
        10
    NoBrain  
    OP
       2016-07-04 08:23:42 +08:00
    @void1900 多谢提点
    NoBrain
        11
    NoBrain  
    OP
       2016-07-04 08:24:36 +08:00
    @shyling 跟你说的方法一样,已经实现了,想想,是我脑袋短路了两天 囧
    rming
        12
    rming  
       2016-07-04 10:23:06 +08:00
    NoBrain fuck 你这都是啥关键词啊……
    kancloud
        13
    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
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1301 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 17:40 · PVG 01:40 · LAX 10:40 · JFK 13:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.