【问题标题】:Urls with a value - without a parameter? (Get request)有值的网址 - 没有参数? (获取请求)
【发布时间】:2011-11-21 19:50:03
【问题描述】:

我可能完全偏离了基础,但我很确定我以前见过这样结构的 URL:

http://www.example.com/dir/?=1 没有传递可见参数,但给出了一个值。

如果这是一个有效的 url 结构,如何在 PHP 中获取参数值1

【问题讨论】:

    标签: php http url


    【解决方案1】:

    无法通过$_GET 获得此值。我只在$_SERVER["QUERY_STRING"]$_SERVER["REQUEST_URI"] 中找到它。所以我假设你必须自己解析这些变量。

    【讨论】:

    • 啊,这很糟糕,但完全可以理解。谢谢,当计时器下降时,我会接受你的提议:)。
    【解决方案2】:

    这是我用来读取此类 URL 的快速而肮脏的函数

    function get_url_params() {
        $param_count = 0;
        $params = array();
        foreach (explode('&', $_SERVER['QUERY_STRING']) as $param) {
            $param = explode('=', $param);
    
            if ($param[0] == '') {
                $params[$param_count] = $param[1];
            } else {
                $params[$param[0]] = $param[1];
            }
    
            $param_count++;
        }
        return $params;
    }
    
    print_r(get_url_params());
    

    【讨论】:

      【解决方案3】:

      您可以手动过滤来自 $_SERVER["QUERY_STRING"] (documentation) 的变量,对于您的示例应该是 =1

      【讨论】:

        【解决方案4】:

        很可能使用重写规则 .htaccess 文件。这会将请求字符串转换为站点脚本所期望的任何内容。

        在此站点上搜索重写引擎、重写规则和/或 .htaccess 将获得有关此主题的大量信息。

        【讨论】:

          猜你喜欢
          • 2018-04-19
          • 1970-01-01
          • 2012-08-14
          • 2021-04-29
          • 1970-01-01
          • 2017-07-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多