在php中以干净的方式将params添加到查询字符串中

时间:2018-04-09 13:29:27

标签: php parameters get add

如果可能的话,我想找一个 clean (没有太多的字符串操作preg _ *)

我知道要替换我要做的参数

$_GET['info'] = "newinfo";

并删除参数:

unset($_GET['info']);

那么我可以使用那样的东西吗?

当然,在我“取消设置”或“设置”后,我正在构建一个新查询。 (http_build_query)。

最后,我正在努力做到这一点:

  

/index.php?foo=bar

  

/index.php?foo=bar&info=newinfo

1 个答案:

答案 0 :(得分:0)

这样做:

$get = $_GET;
$get['new'] = 'some value';

function getPath()
{
    // Stolen from https://stackoverflow.com/a/8775529/3578036
    $request = parse_url($_SERVER['REQUEST_URI']);
    $path = $request["path"];
    return rtrim(str_replace(basename($_SERVER['SCRIPT_NAME']), '', $path), '/');
}

header("Location: " . getPage() . http_build_query($get));

上面的代码将创建一个查询字符串,并将其附加到当前URL并重定向到该位置。显然,您可以通过替换getPage()函数结果并将自己的结果放在那里来更改重定向的位置,这只是演示了答案的前提。

http_build_query的文档是一个非常好的起点 实际上,它将把关联数组转换为HTTP查询字符串。