Удалить значение из строки запроса - PullRequest
0 голосов
/ 20 ноября 2010

У меня есть URL, в котором строка запроса создается скриптом PHP. В строке запроса отображаются различные значения.

Обычно мне нужно удалить определенное значение из строки запроса, когда посетитель нажимает на ссылку или кнопку «удалить».

Итак, строка запроса выглядит так:

http://www.foo.com/script.php?bar1=green&bar2=blue

Но когда пользователь нажимает на ссылку или кнопку «удалить», bar1=green удаляется, и посетитель перенаправляется на следующий URL:

http://www.foo.com/script.php?bar2=blue

Я думал, что это будет легко с использованием базового HTML с формой или якорем, но я пока не смог этого сделать.

Просто, чтобы вы знали, у меня нет доступа к коду на самом скрипте PHP; он размещается удаленно и вызывается на мою веб-страницу с помощью оболочки PHP с помощью iframe.

Любые предложения с благодарностью.

Большое спасибо,

Мэтт

Ответы [ 2 ]

4 голосов
/ 20 ноября 2010

Вы можете удалить значение из строки запроса, используя этот код:

<?php
function parseQueryString($url,$remove) {
    $infos=parse_url($url);
    $str=$infos["query"];
    $op = array();
    $pairs = explode("&", $str);
    foreach ($pairs as $pair) {
       list($k, $v) = array_map("urldecode", explode("=", $pair));
        $op[$k] = $v;
    }
    if(isset($op[$remove])){
        unset($op[$remove]);
    }

    return str_replace($str,http_build_query($op),$url);

} 
echo parseQueryString( "http://www.foo.com/script.php?bar1=green&bar2=blue","bar2");
?>
0 голосов
/ 20 ноября 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...