如何使用$ _SERVER ['REQUEST_URI']来编写新的URL而不是无限循环?

时间:2010-08-10 21:32:34

标签: php

我有一个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中删除,所以我不能只将它清理回{ {1}}。

(我正在使用Drupal,如果内置的秘密变量也很酷。)

1 个答案:

答案 0 :(得分:1)

一个常见的策略是执行以下操作:

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

计算新的查询字符串。