2010-08-10 62 views
0

我有一个PHP页面,并希望编写一个基于当前URL的链接。像这样:

$alias = substr(strrchr($_SERVER['REQUEST_URI'], "/"), 1); 

print '<a href="'.$alias.'&sort=name">Sort by Name</a>'; 

http://domain.com/listings的页面,链接写入http://domain.com/listings&sort=name,它完美的作品。

但是,一旦我在页面http://domain.com/listings&sort=name上,页面上的链接被写入http://domain.com/listings&sort=name&sort=name。此外,如果我点击其他排序链接之一,我将以http://domain.com/listings&sort=name&sort=comments结束。

这是愚蠢的。有没有更好的方式来生成我的链接?或者我应该做一些事情来清理$别名,然后再使用它?并发症:有一些变量(如&category=34&title=spa),我不要想从URL中删除,所以我不能把它清回到/listings

(我使用Drupal的,如果有建在那里秘密变量,这将是太酷。)

回答

1

一个常见的策略是做这样的事情:

http_build_query(array_merge($_GET, array("sort" => "name"))) 

来计算新的查询串。

+0

哦,有趣。这并不适用于开箱即用(它生成的URL为“domain.com/q=listings&sort=name” - Drupal的纯URL代码和干净的URL代码以及我自己的附加参数的一些奇怪的混合体),但绝对值得望着! – Eileen 2010-08-10 22:28:24

相关问题