在PHP中使用斜杠后从URL获取最后一个单词

时间:2011-05-07 12:35:17

标签: php url get

我需要从网址获取最后一个字。例如,我有以下网址:

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

我只需要使用PHP“测试”,没有别的。我试着用这样的东西:

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

它对我不起作用。你能帮帮我吗?

非常感谢!!

8 个答案:

答案 0 :(得分:38)

basename与parse_url一起使用:

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

答案 1 :(得分:19)

使用正则表达式:

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

答案 2 :(得分:3)

我用过这个:

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

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

答案 3 :(得分:2)

您可以使用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'], '/'));

答案 4 :(得分:1)

为此,您可以在REQUEST_URI上使用explode。我已经做了一些简单的功能:

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

答案 5 :(得分:0)

使用preg *

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

这只是代码的概念。它可以在功能上重写。

PS。通常我使用 mod_rewrite 来处理这个...在PHP中的$ _GET变量进程。 这是一个很好的做法,恕我直言

答案 6 :(得分:0)

如果您不介意包含查询字符串,请使用basename。您也不需要使用parse_url

$url = 'http://www.mydomainname.com/m/groups/view/test';
$showword = basename($url);
echo htmlspecialchars($showword);

根据用户输入或$url生成$_SERVER['REQUEST_URI']变量时;在使用echo之前,请先使用htmlspecialcharshtmlentities,否则用户可以添加html标签或在网页上运行JavaScript

答案 7 :(得分:-3)

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"

complete solution you will get in the below link. i just found to Get last word from URL after a slash in PHP.

Get last parameter of url in php