Как вырезать из переменной известный кусок текста

Samail
На сайте с 10.05.2007
Offline
369
593

Переменная:

<?php echo "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; ?>

В ней может содержаться: "&old=oldchat" или "?old=oldchat" и дальше ничего или "?old=oldchat&"

Как сделать чтобы если есть "&old=oldchat", это и вырезалось, если "?old=oldchat" и дальше нет символов, то вырезалось "?old=oldchat", если "?old=oldchat&", то вырезалось "old=oldchat&".

ДП
На сайте с 23.11.2009
Offline
203
#1


$replaces = array(
'&old=oldchat&' => '&',
'&old=oldchat' => '',
'?old=oldchat&' => '?',
'?old=oldchat' => ''
);
$test = array(
'http://site.ru/index.php?vl=34&old=oldchat',
'http://site.ru/index.php?vl=34&old=oldchat&fkjf=45',
'http://site.ru/index.php?old=oldchat',
'http://site.ru/index.php?old=oldchat&other=val'
);
foreach($test as $url) {
$url = strtr($url, $replaces);
echo $url.PHP_EOL;
}

Сегодня только встретил либу -там есть функция - вырезает из урла параметр - http://brandonwamboldt.github.io/utilphp/#remove_query_arg

https://github.com/brandonwamboldt/utilphp/

siv1987
На сайте с 02.04.2009
Offline
427
#2

rtrim(preg_replace('/(\?|&)old=oldchat(&|$)/', '$1', $var), '?');

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий