Как обрезать $ _SERVER ['HTTP_REFERER'] - PullRequest
3 голосов
/ 29 марта 2012

После обработки я отправляю пользователя на предыдущую страницу, используя:

header('Location: ' . $_SERVER['HTTP_REFERER'] . '?Add=Successful');

Теперь он отправляет меня на мой add.php :

http://localhost/add.php?Add=Successful

Опять же, когда я добавляю еще одну информацию, местоположение заголовка проходит следующим образом:

http://localhost/add.php?Add=Successful?Add=Successful

Я хочу обрезать местоположение заголовка до вопросительного знака:

Позволяет сказать что-то вроде обрезки $_SERVER['HTTP_REFERER'] до ? и сохранение его в переменную, чтобы, если существует ключевое слово ?, оно снова обрезало его до http://localhost/add.php, а затем передавало эту переменную в местоположение заголовка, чтобы оно могло выглядеть примерно так:

header('Location: ' . $trimmedHeader . '?Add=Successful');

Ответы [ 4 ]

8 голосов
/ 29 марта 2012

Вы также можете использовать функцию PHP parse_url () .

$url = parse_url($_SERVER['HTTP_REFERER']);
$trimmedHeader = $url['scheme'] . '://' . $url['host'] . $url['path'];
header('Location: ' . $trimmedHeader . '?Add=Successful');
0 голосов
/ 29 марта 2012
$urlArray = parse_url($_SERVER['HTTP_REFERER']);
$newUrl = $urlArray['scheme'].'://'.$urlArray['host'].$urlArray['path'].'?Add=Successful';
header("Location: $newUrl");

Это было проверено и отлично работает ....

0 голосов
/ 29 марта 2012

Это вернет вам все до первого знака вопроса в строке.

$trimmedheader = array_shift(explode("?", $_SERVER['HTTP_REFERER']));
0 голосов
/ 29 марта 2012
preg_replace('/(.*)\?/',$_SERVER['HTTP_REFERER'],'\1');
...