Извлечь схему и хост из HTTP_REFERER - PullRequest
5 голосов
/ 17 июля 2009

У меня есть $_SERVER['HTTP_REFERER'] & mdash; притвориться, что это http://example.com/i/like/turtles.html. Что мне нужно сделать, чтобы получить только часть http://example.com из строки и сохранить ее в своей переменной?

Ответы [ 4 ]

16 голосов
/ 17 июля 2009

В этом примере лучшим решением было бы использование PHP parse_url метода . Это разбивает URL в ассоциативный массив. Затем вы построите свое окончательное значение, комбинируя scheme с host:

if ( $parts = parse_url( "http://example.com/i/like/turtles.html" ) ) {
    echo $parts[ "scheme" ] . "://" . $parts[ "host" ];
}
13 голосов
/ 17 июля 2009

Я бы использовал parse_url следующим образом ...

if ($urlParts = parse_url($myURI))
  $baseUrl = $urlParts["scheme"] . "://" . $urlParts["host"];
3 голосов
/ 17 июля 2009

Вы должны иметь возможность использовать функцию parse_url для достижения этого

2 голосов
/ 17 июля 2009

Вы можете использовать регулярное выражение:

if (isset($_SERVER['HTTP_REFERER']) && preg_match('@^[^/]+://[^/]+@', $_SERVER['HTTP_REFERER'], $match)) {
    var_dump($match[0]);
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...