Извлечь схему и хост из HTTP_REFERER

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

Ответы

Ответ 1

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

if ( $parts = parse_url( "http://example.com/i/like/turtles.html" ) ) {
    echo $parts[ "scheme" ] . "://" . $parts[ "host" ];
}

Ответ 2

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

if ($urlParts = parse_url($myURI))
  $baseUrl = $urlParts["scheme"] . "://" . $urlParts["host"];

Ответ 3

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

Ответ 4

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

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

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