Intereting Posts

Получить последнее слово из 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; 

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

Огромное спасибо!!

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

с помощью regex:

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

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

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

Вы можете использовать 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 косые черты во внимание, вы можете использовать rtrim для их удаления, прежде чем rtrim его на свои сегменты с помощью explode . Так:

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

Я использовал это:

 $lastWord = substr($url, strrpos($url, '/') + 1); 

Thnx: https://stackoverflow.com/a/1361752/4189000

Для этого вы можете использовать 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(); 

использование preg *

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

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

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

 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