Подтвердить что ты не робот

Получить второй сегмент из URL-адреса

Как получить второй сегмент в URL без косой черты? Например, у меня есть URL-адрес, похожий на этот

http://foobar/first/second

Как получить значение, где стоит "первый"?

4b9b3361

Ответ 1

Используйте parse_url, чтобы получить путь от URL-адреса, а затем используйте explode, чтобы разбить его на сегменты:

$uri_path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$uri_segments = explode('/', $uri_path);

echo $uri_segments[0]; // for www.example.com/user/account you will get 'user'

Ответ 2

$segments = explode('/', trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/'));

Ответ 3

Чтобы принять ваш пример http://domain.com/first/second

$segments = explode('/', trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/'));
$numSegments = count($segments); 
$currentSegment = $segments[$numSegments - 1];

echo 'Current Segment: ' , $currentSegment;

Результат Текущий сегмент: второй

Вы можете изменить numSegments -2, чтобы получить first

Ответ 4

Вот мой длинный путь захвата последнего сегмента, вдохновленный ответом Гумбо:

// finds the last URL segment  
$urlArray = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$segments = explode('/', $urlArray);
$numSegments = count($segments); 
$currentSegment = $segments[$numSegments - 1];

Вы можете сварить это на две линии, если хотите, но это делает довольно очевидным то, что вы делаете, даже без комментариев.

Как только у вас есть $currentSegment, вы можете повторить его или использовать в инструкции if/else или switch, чтобы делать все, что вам нравится, на основе значения конечного сегмента.