请问url中的index.php?action/method/key/value是如何实现的?
其中action:类名
    method:类中的方法
    key:变量
    value:传递的变量值
现在有个类
class action{
    function method(){
         echo $_GET['key'];
    }
}
请问,这是怎么实现的,我自己写的话,该如何通过上述的url访问到该类的方法,并输出值

解决方案 »

  1.   

    用开源的MVC框架可以实现 形式可能不完全一样 不过差不多
    简单的你可以用 $_SERVER["QUERY_STRING"] 这个来取url ?后面的值 自己实现路由功能
      

  2.   

    我就是不知道怎么设置啊!apache的路由rewriterule这些我都知道。就是不知道怎么访问一个action中的method啊。
    一般的url在没设置的情况下只有index.php?name=yyyyy这种形式,根本访问不到类中的方法
      

  3.   

    形如 index.php?action/method/key/value
    这样的 url 目前是很少使用的,他是为了在 iis+php4 环境中模拟 path_info 的
    而到 php5 后,iis+php5 已经能很好的支持 path_info 了所以应写作 index.php/action/method/key/value
    没有了问号,是不是更像一个路径?
    用 $_SERVER['PATH_INFO'] 取得参数串如果坚持那样用,则用 $_SERVER["QUERY_STRING"] 取得数据假定已取得数据在 $s 中
    $s = 'action/method/key/value';$dict = array('action', 'method', 'key', 'value');
    $_GET = array_combine( $dict, split('/', $s) );print_r($_GET);Array
    (
        [action] => action
        [method] => method
        [key] => key
        [value] => value
    )
      

  4.   


    我上面的只是个例子,我是想问如何通过这个url地址去访问到action的method,并为method传值
    一般的url是index.php?a=xxx&b=yyy的方式,这种方式无法访问到action类的method方法啊,只传了几个参数
      

  5.   

    那就写公共的类,其他类都要继承这个基类,在基类中写个方法,每次访问的时都通过这个方法去解析当前的url,解析后你会获取到类名,方法名,参数等.获取到这些内容,你就可以去调用相应的类和方法了.用现成框架,这些都是已经封装好的.