php удалить переменную QUERY_STRING

0

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

if(!function_exists("remove_querystring_var")) {
    function remove_querystring_var($url, $key) {
        $url = preg_replace('/(.*)(?|&)' . $key . '=[^&]+?(&)(.*)/i', '$1$2$4', $url . '&');
        $url = substr($url, 0, -1);
        return ($url);
    }
}

У меня есть ссылки ahref:

<a href="link.php?<?php echo $_SERVER["QUERY_STRING"]; ?>">link</a>

но мне нужно уметь удалять ?pagenum=X (X = номер страницы)

  • 2
    parse_str() + http_build_query()
  • 2
    Так работает ли ваша функция remove_querystring_var ? Не работа? Что за вопрос здесь?
Показать ещё 3 комментария
Теги:

1 ответ

3
Лучший ответ

вы могли бы просто

unset($_GET['pagenum']);

а также

<a href="link.php?<?= http_build_query($_GET) ?>">link</a>

Код будет выглядеть следующим образом:

<?php

// $_GET looks like: array('foo'=>'bar','pagenum'=>5,'abc'=>'xyz')

unset($_GET['pagenum']);

// now $_GET looks like: array('foo'=>'bar','abc'=>'xyz')

// so http_build_query($_GET) will look like: foo=bar&abc=xyz
?>


<a href="link.php?<?php echo http_build_query($_GET) ?>">link</a>
  • 0
    как использовать unset в href ссылке?
  • 0
    у вас нет, вы сбрасываете переменную GET перед созданием новой строки запроса, плохо редактируете ответ, чтобы сделать его более понятным

Ещё вопросы

Сообщество Overcoder
Наверх
Меню