Лучший способ заменить значение строки запроса в данном URL

Хорошо .. Так что в основном, скажем, у нас есть ссылка:

$url = "http://www.site.com/index.php?sub=Mawson&state=QLD&cat=4&page=2&sort=z";

в основном, мне нужно создать функцию, которая заменяет каждую вещь в URL Например:

<a href="<?=$url;?>?sort=a">Sort by A-Z</a>
<a href="<?=$url;?>?sort=z">Sort by Z-A</a>

или, для другого примера:

<a href="<?=$url;?>?cat=1">Category 1</a>
<a href="<?=$url;?>?cat=2">Category 2</a>

или, другой пример:

<a href="<?=$url;?>?page=1">1</a>
<a href="<?=$url;?>?page=2">2</a>
<a href="<?=$url;?>?page=3">3</a>
<a href="<?=$url;?>?page=4">4</a>

Так что в основном нам нужна функция, которая заменит специфические $ _ Get с URL, так что мы понимаем Не получив дубликат, например: ? Page = 2 & Page = 3

, заявив, что он должен быть умным, поэтому он знает, если начало параметра является ? или &

Нам также нужно, чтобы он был умным, чтобы мы могли использовать URL так:

<a href="<?=$url;?>page=3">3</a> (without the ? - so it will detect automatically wether to use an `&` or a `?`

Я не против делать разные переменные для каждого preg_replace для определенных параметров $ _get, но я ищу Насколько лучший способ сделать это.

Спасибо.

7
задан ajreal 9 September 2011 в 04:48
поделиться