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

Получить последнее слово из URL-адреса после косой черты в PHP

Мне нужно получить последнее слово из URL. Так, например, у меня есть следующий URL:

http://www.mydomainname.com/m/groups/view/test

Мне нужно получить с PHP только "тест", ничего больше. Я попытался использовать что-то вроде этого:

$words = explode(' ', $_SERVER['REQUEST_URI']);
$showword = trim($words[count($words) - 1], '/');
echo $showword;

Это не работает для меня. Можете ли вы мне помочь?

Большое вам спасибо!

4b9b3361

Ответ 1

с помощью regex:

preg_match("/[^\/]+$/", "http://www.mydomainname.com/m/groups/view/test", $matches);
$last_word = $matches[0]; // test

Ответ 2

Используйте basename с помощью parse_url:

echo basename(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));

Ответ 3

Вы можете использовать explode, но вам нужно использовать / как разделитель:

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

Обратите внимание, что $_SERVER['REQUEST_URI'] может содержать строку запроса, если текущий URI имеет один. В этом случае вы должны использовать parse_url, чтобы получить только путь:

$_SERVER['REQUEST_URI_PATH'] = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);

И чтобы принять во внимание трейлинг-косые черты, вы можете использовать rtrim, чтобы удалить их, прежде чем разделить его на свои сегменты, используя explode. Итак:

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

Ответ 5

Для этого вы можете использовать explode на REQUEST_URI. Я сделал несколько простых функций:

function getLast()
{
    $requestUri = $_SERVER['REQUEST_URI'];

   # Remove query string
    $requestUri = trim(strstr($requestUri, '?', true), '/');
   # Note that delimeter is '/'
    $arr = explode('/', $requestUri);
    $count = count($arr);

    return $arr[$count - 1];
}

echo getLast();

Ответ 6

использовать preg *

if ( preg_match( "~/(.*?)$~msi", $_SERVER[ "REQUEST_URI" ], $vv ))
 echo $vv[1];
else
 echo "Nothing here";

Это была просто идея кода. Он может быть перезаписан в функции.

PS. Обычно я использую mod_rewrite для обработки этого процесса... в php переменные $_GET. И это хорошая практика, ИМХО

Ответ 7

ex: $url      = 'http://www.youtube.com/embed/ADU0QnQ4eDs';
$url      = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$url_path = parse_url($url, PHP_URL_PATH);
$basename = pathinfo($url_path, PATHINFO_BASENAME);
// **output**: $basename is "ADU0QnQ4eDs"

полное решение вы получите в приведенной ниже ссылке. я просто нашел, чтобы получить последнее слово из URL-адреса после косой черты в PHP.

Получить последний параметр url в php