Obter a última palavra do URL após uma barra no PHP

Preciso obter a última palavra de uma URL. Então, por exemplo, eu tenho o seguinte URL:

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

Eu preciso obter com PHP apenas “teste”, nada mais. Eu tentei usar algo como isto:

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

Isto não funciona para mim. Você pode me ajudar por favor?

Muito obrigado!!

usando regex:

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

Use o nome do arquivo com parse_url:

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

Você pode usar explode mas você precisa usar / como delimitador:

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

Observe que $_SERVER['REQUEST_URI'] pode conter a seqüência de consulta se o URI atual tiver um. Nesse caso, você deve usar o parse_url antes para obter apenas o caminho:

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

E para ter em conta as barras laterais, você pode usar o rtrim para removê-los antes de dividi-lo em seus segmentos usando explode . Assim:

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

Eu usei isso:

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

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

Para fazer isso, você pode usar explode no seu REQUEST_URI Eu fiz uma function simples:

 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(); 

use preg *

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

Esta era apenas uma idéia de código. Pode ser regravado em function.

PS. Geralmente eu uso mod_rewrite para lidar com este … ans processo em php as variables ​​$ _GET. E esta é uma boa prática, IMHO

 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" 

solução completa que você receberá no link abaixo. Acabei de obter a última palavra do URL após uma barra em PHP.

Obter o último parâmetro de url no php