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

Mat*_*att 8 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>
Run Code Online (Sandbox Code Playgroud)

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

&sd=a&sd=d
Run Code Online (Sandbox Code Playgroud)

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

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

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

干杯,马特

Gol*_*rol 20

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

$params = $_GET;
$params['sd'] = "whateveryoulike";
$paramString = http_build_query($params);
Run Code Online (Sandbox Code Playgroud)