Удалить get параметр php

Добавить, изменить и удалить параметры GET из строки запроса

Допустим, текущая строка запроса следующая

Мне нужна функция, которая может добавлять и удалять несколько параметров из строки запроса. Например:

Таким образом, функция должна не только добавлять новые параметры (eyes = 2 и finger = 10), но и изменять уже существующие (car = black => car = purple).

Все эти новые и измененные параметры могут быть переданы в первом аргументе функции. Разделены по «&».

Второй аргумент функции должен передавать все ключи параметров, которые должны быть удалены из строки запроса, если она есть.

Я управлял только первой частью, которая может добавлять и заменять параметры. Но, может быть, у кого-то есть более эффективный способ, включая второй аргумент для удаления вещей из строки запроса.

5 ответов

Это должно работать для вас, используя parse_str (), array_merge () и http_build_query ()

Я перебрал бы массив запросов в поисках наличия ключей в массиве замены и обновлялся на основе этого. После этого я перебираю в обратном порядке массив запросов, ища ключи в массиве удаления, и удаляю эти экземпляры из массива запросов.

Поскольку 2-й должен быть выполнен задом наперед, чтобы предотвратить проблемы в индексах, вы не можете выполнять оба цикла одновременно. Если вы попробуете это, или даже попытаетесь выполнить 2-й шаг вперед, вам понадобится больше кода, и он очень запутается. Я предлагаю сделать удаление последним, так как вы, очевидно, хотите сохранить порядок существующих ключей, и это только минимальное снижение производительности, чтобы сделать это последним. Это мнение о производительности предполагает, что вы не выполняете десятки тысяч (или более) этих параметров и придерживаетесь веб-стандартизированного допустимого количества символов в вашем URL / URI.

Конечно, есть много разных способов кодирования этого, а также разные методы, чем я описываю, чтобы делать то, что вы хотите. Я просто описываю, что я буду делать. Если у других людей есть другие мнения, я рекомендую вам опубликовать свой собственный ответ, вместо того, чтобы отказываться голосовать или критически комментировать этот ответ.

Поскольку это кажется возможным, это может быть домашнее задание, я не собираюсь кодировать это для ОП. Если это не домашнее задание, я думаю, что они смогут понять это самостоятельно из того, что я уже дал.

Надеюсь, я был полезным и удачи!

Вы не должны изменять магию PHP GLOBALS.

Использование массивов более читабельно, чем строки. Так что попробуйте эту модификацию, которая может соответствовать вашим потребностям.

После того, как вы проанализировали строки запроса в массивах, вы можете объединить и преобразовать их, чтобы получить желаемый результат.

Это будет обрабатывать только простые строки запроса. Если есть вложенные элементы, вам понадобится рекурсивное решение. Но это верно для любого из этих ответов, а также для вашей первоначальной функции.

Источник

Удаление параметра из строки GET по регулярному выражению

Но нормальных результатов оно не дает, что я не правильно составил тут? (делал по учебнику)

Удалить get параметр php

Удалить get параметр php

3 ответа 3

Удалить get параметр php

Без регулярных выражений:

Удалить get параметр php

Для корректного удаления подстроки понадобится шаблон, состоящий из трёх альтернатив:

Если удаляемый элемент находится сразу после вопросительного знака, но не является единственным GET-параметром

(в этом случае надо оставить знак «?», и удалить знак «&» вместе с удаляемым элементом)

Если удаляемый элемент находится сразу после вопросительного знака, и является единственным GET-параметром

(в этом случае надо удалить знак «?», и все остальные символы после него)

Если удаляемый элемент находится в любой другой позиции подстроки

(в этом случае, вместе с удаляемыми символами надо удалять и знак «&», предшествующий удаляемой подстроке)

Шаблон будет иметь следующий вид:

В комплекте с PHP-функцией он будет выглядеть таким образом:

Источник

Как убрать GET параметры в адресной строке

Здравствуйте!
Возможно преобразовать ссылку test1.ru/index.php?page=1 в test1.ru/index/page/1/

Скрипт постраничной навигации

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Привожу код полностью, появилась ошибка в 45 строке (Parse error: syntax error, unexpected T_IF)

ПолучилосьУдалить get параметр php

Я правильно понял, что одиночный » / » сразу обращается к каталогу или файлу который в корне, а «../» поднимает на один уровень выше.

Внутренняя ошибка сервера.

Добавлено через 55 минут
Не одна страница не открывается когда этот код прописываю.

Добавлено через 40 минут
Ошибка в коде, где убираем php в строке:

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Как отключить в хроме поиск в адресной строке?
Поставил Open Server, создал в папке domains папку с именем моего домена, перезапустил сервер, пишу.

Как изначально задать параметр в адресной строке?
Сейчас при загрузке с домашней страницы адрес выглядит вот так: /index.php В коде задано условие.

Как сделать, чтобы в адресной строке не отображалось расширение php?
как сделать чтоб не высвечивалась приставка php? и заходить что б можно было

$_GET разобрать параметры адресной строки
Добрый вечер, мне надо сделать так что бы при клике залоговка открывался полный текст записи я.

Источник

Удалить параметр URL с помощью PHP

У меня есть некоторые ссылки в презентации powerpoint, и по какой-то причине, когда эти ссылки нажимаются, он добавляет возвращаемый параметр в URL. Ну, этот возвращаемый параметр вызывает сбой шаблона MVC моего сайта Joomla.

Итак, каков эффективный способ удалить этот возвращаемый параметр с помощью PHP.

15 ответов

самый безопасный» правильный » метод будет:

в другом потоке Джастин предполагает, что самый быстрый способ-использовать strtok ()

см. его полный ответ с тестами скорости также здесь:https://stackoverflow.com/a/1251650/452515

это дополнение Марка Бответ с примером, хотя он может выглядеть довольно долго, это безопасный способ удалить параметр. В этом примере мы удаляем page_number

parse_str анализирует строку запроса, http_build_query создает строку запроса.

вы могли бы сделать preg_replace как:

вот фактический код для того, что описано выше как «самый безопасный»правильный » метод».

однако, поскольку это, вероятно, будет существовать до загрузки вашего приложения, вы, вероятно, должны поместить его в анонимную функцию. Вроде этого.

Это один из многих способов, не проверял, но должно работать.

процессуальное оформление марка Б ответ после переработки Сергей Telshevsky это!—3—> ответ.

Вау, здесь много примеров. Я предоставляю тот, который делает некоторую обработку ошибок. Он перестраивает и возвращает весь URL-адрес с помощью строки запроса-param-to-be-removed, removed. Он также предоставляет бонусную функцию, которая строит текущий URL-адрес на лету. Проверено, работает!

вторая строка просто заменит & & to&

@MarcB упомянул, что грязно использовать regex для удаления параметра url. И да, это так, потому что это не так просто, как кажется:

Как вы можете видеть, только @kraftb опубликовал правильный ответ с помощью regex, и моя версия немного меньше.

/ / просто скопируйте приведенный выше код и просто вызовите эту функцию, чтобы получить новый url без определенного параметра

Echo remove_attribute($url, ‘delete_params’); / / дает новый url без этого параметра

это удалит параметр ‘i’из URL-адреса. Измените » я » на все, что вам нужно.

Источник

Удалить дублирующие гет-параметры из url

у меня есть 2 ссылки, которые добавляют к URL гет-параметры.

url вида site/lk/games/

когда перехожу по первой в URL появляется site/lk/games/?CID=2

когда по второй site/lk/games/?CID=2?TID=1

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Удалить get параметр phpУдалить пустые параметры (равные пробелу или 0) из гет-запроса
Добрый. Есть простая форма, в которой НЕ ВСЕ поля обязательны к заполнению, пусть на коленке это.

Убрать гет параметр из url
Всем привет,кто скажет как убрать гет параметр из url? например: сейчас есть: site.com/id?=1 мне.

Удалить дублирующие записи!
Здраствуйте! У меня возникла такая проблема. Я отфильтровываю данные по такому коду, чтобы убрать.

Удалить get параметр phpНе передаются данные метода гет в url. Почему?
Отправляю данные в через xmlHttpRequest. В параметрах функции open() пишу.

Это не дублирование, а наследование. Формируйте ссылку не на основе REQUEST_URI, а исключительно на основе пути.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

С помощью запроса удалить дублирующие записи
Перерыл весь инет но так и не нашел какое нужно поставить условие ((( Таблица Клиент (ключевого.

Как скрыть параметры URL и передать их методом пост используя Url.Action()
Здравствуйте. У меня в представлении на сайте есть ссылка, которая формируется в методе действии.

Удалить get параметр phpУдалить дублирующие пробелы, и заменить их одним, используя цепочные команды (masm)
Здравствуйте. Пытаюсь решить задачу. Суть: удалить дублирующие пробелы и заменить их одним.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *