Как заменить переменную в запросе get в PHP?

У меня есть URL

http://example.com/test?xyz=27373&page=4&test=5 

который я хочу преобразовать, заменив page=4 на page=XYZ

как я могу это сделать с помощью preg_replace ?

Да, вы можете использовать

 $oldurl = "http://test.com/test?xyz=27373&page=4&test=5" $newurl = preg_replace("/page=\d+/", "page=XYZ", $oldurl); 

Или вы можете восстановить URL-адрес от $_GET superglobal.

Вы хотите установить значение xyz на значение страницы? Я думаю, вам, возможно, потребуется указать немного больше. Но это легко изменить, если вы не знаете regex.

 $url = 'http://test.com/test?xyz=27373&page=4&test=5'; $urlQuery = parseUrl($url, PHP_URL_QUERY); parse_str($urlQuery, $queryData); $queryData['page'] = $queryData['xyz']; unset($queryData['xyz']); $query = http_build_query($queryData); $outUrl = substr_replace($url, $query, strpos($url, '?')); с $url = 'http://test.com/test?xyz=27373&page=4&test=5'; $urlQuery = parseUrl($url, PHP_URL_QUERY); parse_str($urlQuery, $queryData); $queryData['page'] = $queryData['xyz']; unset($queryData['xyz']); $query = http_build_query($queryData); $outUrl = substr_replace($url, $query, strpos($url, '?')); 
 $url = 'http://test.com/test?xyz=27373&page=4&test=5'; preg_match('/xyz=([^&]+)/', $url, $newpage); $new = preg_replace('/page=([^&]+)/', $newpage[0], $url); $new = preg_replace('/xyz=([^&]+)&/', '', $new); 

Это повернется

http://test.com/test?xyz=27373&page=4&test=5

в

http://test.com/test?page=27373&test=5

Простите меня, если это не то, что вы хотели сделать, но ваш вопрос не совсем ясен.

Я уверен, что вы могли бы сделать что-то с регулярным выражением. Однако, если указанный вами URL является тем, который вы сейчас обрабатываете, у вас уже есть все переменные запроса в $ _Request.

Итак, перестройте URL-адрес, заменив значения, которые вы хотите заменить, а затем переадресовываете новый URL-адрес.

В противном случае найдите учебник регулярных выражений.

Если это ваша собственная страница (и вы находитесь на этой странице), эти переменные появятся в глобальной переменной с именем $_GET , и вы можете использовать что-то вроде array_slice , unset или array_filter для удаления нежелательных переменных и восстановления URL-адреса.

Если у вас есть только этот URL как строка, то каковы критерии удаления информации? Технически нет никакой разницы между

 ...?xyz=27373&page=4&test=5 

а также

 ...?test=5&xyz=27373&page=4 

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

Если вы хотите удалить все, кроме параметра xyz . Взгляните на parse_url и parse_str

Что именно ты пытаешься сделать? Вопрос немного неясен.

$ XYZ = $ _GET ['xyz']; $ PAGE = $ _GET ['page'];

?

Желаете заменить каждое значение другим или заменить оба на один?