Получил эту функцию для мигрирования строки запроса и задавался вопросом, что означало замещающая часть пре_рекламы (т.е. $1 $2 $4).
function add_querystring_var($url, $key, $value) {
$url = preg_replace('/(.*)(\?|&)' . $key . '=[^&]+?(&)(.*)/i', '$1$2$4', $url . '&');
$url = substr($url, 0, -1);
if (strpos($url, '?') === false) {
return ($url . '?' . $key . '=' . $value);
} else {
return ($url . '&' . $key . '=' . $value);
}
}
Не слишком знакомы с материалами регулярных выражений. Я получаю различные части для preg_replace, но не 100% об использовании "$ 1 $2 $4" в запасной части.