PHP URL GET参数,如果存在,替换?

时间:2011-02-05 18:18:16

标签: php url get

尝试执行高级搜索选项,并对不同选项ASC或DESC进行排序。

示例网址:

search.php?accom_type=x&no_rooms=x&rooms_total=x&prop_area=x&rent_less=&rent_more=&available=&go=Search &sd=a

突出显示的粗体是& sd(排序方向)选项。先前的变量通过填写的表单传递。

现在我有这样的链接..

<a href="<?=$_SERVER['REQUEST_URI']?>&sd=a">ASC</a>|<a href="<?=$_SERVER['REQUEST_URI']?>&sd=d">DESC</a>

这显然是错误的,因为我正在使用REQUEST_URI - 因为如果一个人在最初设置后发生更改,则网址将为:

&sd=a&sd=d

我确定我之前遇到过这个问题,但我不知道如何解决它。

如何检查是否已设置GET(如sd),如果已设置,则更改它,否则,将其添加到URL的末尾,以生成上面显示的链接。

编辑:也许屏幕截图有助于理解: http://dl.dropbox.com/u/10591127/Capture.PNG

干杯, 马特

1 个答案:

答案 0 :(得分:20)

您可以使用$ _GET超全局来获取每个单独的get变量。如果将其放入数组中,则可以通过再次设置来覆盖任何值:

$params = $_GET;
$params['sd'] = "whateveryoulike";
$paramString = http_build_query($params);