Intereting Posts
php: проверьте, свободен ли какой-либо элемент в массиве Как заставить MySQL рассматривать символ подчеркивания как разделитель слов для полнотекстового поиска? PHP Предупреждение: запуск PHP: невозможно загрузить динамическую библиотеку Yii2 – Как получить текущее имя пользователя или имя от пользователя Yii :: $ app->? Могу ли я каким-то образом узнать, какая замена происходит из-за обратного вызова preg_replace_callback? Проверка подлинности Laravel для всех страниц Возможно ли «избежать» имени метода в PHP, чтобы иметь имя метода, которое сталкивается с зарезервированным ключевым словом? Максимальная длина сгенерированного хэша при использовании пароля_шиба? Ошибка кэширования Laravel Как получить доступ к индексу массива при использовании функции explode () в той же строке? PHP Неустранимая ошибка: require (): невозможно разблокировать блокировку pthread Ссылки на создание диаграмм / графиков в PHP? Facebook не показывает все открытые графические изображения Следует ли проверять уникальные поля на уровне базы данных? перенаправить после входа в систему fos user bundle symfony

Заменить значения в строке запроса URI

У меня есть часть строки запроса, в которую я хочу внести замену. Я хочу использовать preg_replace но я как бы preg_replace в регулярном выражении.

Кто-то может помочь? То, что мне нужно заменить, это GET vars.

Вот строка:

 bikeType=G&nikeNumber=4351 

Solutions Collecting From Web of "Заменить значения в строке запроса URI"

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

Вы можете использовать parse_str как уже упоминалось.
Кроме того, если вы хотите вернуть их в строку запроса, вы можете использовать http_build_query

Пример:

 parse_str('bikeType=G&nikeNumber=4351', $params); $params['bikeType'] = 'F'; $params['nikeNumber'] = '1234'; echo http_build_query($params, '', '&'); 

Вывод

 bikeType=F&nikeNumber=1234 

Обратите внимание, что вы не должны использовать parse_str без второго аргумента (или, по крайней мере, с некоторым соображением). Когда вы оставите это, PHP создаст переменные из параметров запроса в текущей области. Это может привести к проблемам безопасности. Вредоносные пользователи могут использовать его для перезаписывания других переменных, например

 // somewhere in your code you assigned the current user's role $role = $_SESSION['currentUser']['role']; // later in the same scope you do parse_str('bikeType=G&nikeNumber=4351&role=admin'); // somewhere later you check if the user is an admin if($role === "admin") { /* trouble */ } 

Еще одно замечание: использование третьего параметра для http_build_query рекомендуется, поскольку правильная кодировка амперсанда & , Некоторые валидаторы будут жаловаться, если вы разместите там только & .