$ _GET中的一致性

时间:2009-11-06 07:14:48

标签: php

是否有一种保持$_GET

一致性的好方法

例如,如果我有一个网址 http://www.example.com/index.php?Id=5&sort=new

我现在想在结尾处添加一个新的$_GET字段,那么有什么方法可以创建一个保持Idsort的函数并添加我的新var lim

因此,现在的网址如下:http://www.example.com/index.php?Id=5&sort=new&lim=100

可能是这样的:

add_new_get('http://www.example.com', 'lim=100');

我确定我可以提出一个功能,但只是想知道是否有人实施了他们想要分享的事情:D

3 个答案:

答案 0 :(得分:2)

你总是可以做$_SERVER['REQUEST_URI'].'&yourstuff=whateves';我猜你可以把它包装在一个函数中,如果你真的想要的话。

上面包含文件名之前的所有内容。如果你只需要获取请求,你可以这样做:

$new_req = "?";
foreach ($_GET as $key=>$val){
    $new_req .= "&".$key."=".$val;
}
$new_req .= $your_new_value;

答案 1 :(得分:2)

您可能会发现最好使用类来管理查询字符串处理,而不是自己编写。

请参阅HTTPQueryString

编写一个函数来获取url并构建查询字符串并不是非常复杂,但是使用像HTTPQueryString这样的类,你不必担心确保你有正确的编码,测试是否存在已经存在于字符串中的变量等

修改

e.g。

$query = new HttpQueryString(false, 'Id=5&sort=new');
$query->mod('lim=100');
echo $query->toString(); // echoes http://www.example.com/index.php?Id=5&sort=new&lim=100

答案 2 :(得分:0)

使用output_add_rewrite_varoutput_rewrite_vars

的解决方案稍微强硬一些