Здравствуйте, как заменить параметры в url path? Есть адрес:
http://site.com/param1/param2/param3?a=1&b=2&c=3
Как заменить например param2 на hello, при этом чтобы всё что после ? осталось на месте.
При этом хотелось бы использовать http_build_url.
Примерный каркас функции:
@params — входные параметры для замены param2 => hello
function replace_path($params = array()) {
return http_build_url();
}
Один из вариантов
<?php
$str = 'http://site.com/param1/param2/param3?a=1&b=2&c=3';
echo replace('param2', 'hello', $str);
// http://site.com/param1/hello/param3?a=1&b=2&c=3
/**
*
* @param str $patt Искомое значение
* @param str $repl Значение для замены
* @param str $str Строка для поиска
*
* @return str
*/
function replace($patt, $repl, $str) {
return preg_replace('~'. preg_quote($patt, '~') .'~', $repl, $str);
}
Или так
<?php
$str = 'http://site.com/param1/param2/param3?a=1&b=2&c=3';
$repl = ['param2' => 'hello'];
echo replace($str, $repl);
// http://site.com/param1/hello/param3?a=1&b=2&c=3
/**
*
* @param str $str Строка для поиска
* @param arr $arr Массив для поиска и замены
*
* @return str
*/
function replace($str, $arr) {
return strtr($str, $arr);
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости