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

问题描述:

尝试执行高级搜索选项,并对不同选项ASC或DESC进行排序。PHP URL GET参数如果存在,则替换?

例URL:

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

isset($ _ GET ['sd'])? – 2011-02-05 18:22:24

+0

if语句应该完美地工作。使用`isset()`来检查是否设置了一个变量。 – Shoe 2011-02-05 18:23:38

您可以使用$ _GET超全局让每一个人GET变量。如果将它放在数组中,则可以通过重新设置来覆盖任何值:

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