如果可能的话,我想找一个 clean (没有太多的字符串操作preg _ *)
我知道要替换我要做的参数
$_GET['info'] = "newinfo";
并删除参数:
unset($_GET['info']);
那么我可以使用那样的东西吗?
当然,在我“取消设置”或“设置”后,我正在构建一个新查询。 (http_build_query)。
最后,我正在努力做到这一点:
/index.php?foo=bar
到
/index.php?foo=bar&info=newinfo
答案 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查询字符串。