PHP 将 REQUEST_URI 解析成数组

标签 php regex

我正在将 REQUEST_URI 解析为一个数组。

现在我有以下代码:

private function load_url_vars()
{
    if (preg_match('/^.+\?(.+)$/', $_SERVER["REQUEST_URI"], $matches))
    {
        $varpairs = preg_split("/&/", $matches[1]);
        foreach ($varpairs as $varpair)
        {
            if (preg_match('/^([A-Za-z_]+)=(.*)$/', $varpair, $varmatch))
            {
                $this->urlvars[$varmatch[1]] = urldecode($varmatch[2]);
            }
        }
    }
}

这样做会不会有安全隐患?这是解析它的好方法吗?

编辑:语言

最佳答案

您也可以在内置函数中使用 php。这将是一种有效的方式。

$urlArr=parse_url($_SERVER['REQUEST_URI']);
parse_str($urlArr['query'], $output);

print_r($output);

关于PHP 将 REQUEST_URI 解析成数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5513716/

相关文章:

正则表达式匹配 Tcl 中的偶数十六进制数字?

regex - bash - 提取字符串的一部分

jquery - 如何同时替换字符和数字?

php - 将 laravel 5 内置认证扩展为仅登录 "if user == active"

php - 从 PHP 脚本与扫描仪对话

python3提取txt文件中两个字符串之间的字符串

regex - 确保文件中的行存在的最佳方法是什么?

php - Doctrine 如何处理多个请求?

javascript - 基于 URL 变量域的重定向

php - jQuery ajax 未加载