Вы получаете неправильный модификатор, потому что вам нужно окружить свое выражение произвольным разделителем. Я склонен использовать !
, потому что я редко хочу это искать, но /
, ~
и другие распространены. Итак:
$qs = preg_replace('!&id=.*!', '', $_SERVER['QUERY_STRING']);
Другой способ сделать это - использовать parse_url()
. Например:
$s = 'http://www.chuckecheese.com/rotator.php?cheese=4&id=1';
$url = parse_url($s);
parse_str($url['query'], $qs);
unset($qs['id']);
$url['query'] = http_build_str($qs);
$out = http_build_url($url);
echo $out;
Примечание: для этого требуется расширение pecl_http , которое, по-видимому, необходимо компилировать самостоятельно в Windows.