Способ получения и редактирования переменных GET для создания гиперссылок - PullRequest
6 голосов
/ 03 марта 2011

Допустим, у меня есть URL, например somefile.php?sort=id&way=desc.

Я хочу написать функцию (или использовать уже созданную), которая позволила бы мне добавить следующие переменные в URL и указать, какую из них я хочу удалить.

Я думал о чем-то вроде function editGetVar("$add","$leave"), где $add будет массивом с новыми переменными для добавления в URL, а $leave будет массивом с переменными, которые должны оставаться в URL.

Пример:

somefile.php?sort=id&way=desc&buyer=retailer

и я хочу удалить «покупателя» и добавить «действие», тогда a href будет выглядеть так:

<a href="somefile.php?sort=id&way=desc&action=edit">

Буду признателен за любые ваши идеи.

Ответы [ 3 ]

10 голосов
/ 03 марта 2011

Использовать http_build_query :

<?php
unset($_GET['buyer']);
$_GET['action'] = 'edit';

print '<a href="somefile.php?' . http_build_query($_GET) . '">!!</a>';
?>
4 голосов
/ 03 марта 2011

Я полагаю, что вы можете разделить URI с помощью $parts = parse_url($my_uri), манипулировать полученным массивом и соединить его вместе с функцией http_build_query.

0 голосов
/ 03 марта 2011

Пример:

$url = '?';
foreach( $_POST as $key => $value )
{
    $url .= $key . '=' . $value . '&';
}

Вы можете добавить / отредактировать переменную как:

$_GET[ 'sort' ] = 'asc';

Вы можете удалить как:

unlink( $_GET[ 'sort' ] );

Вы можете сами обернуть это в функцию;)

...