获取URL中最后一个斜杠后的值

4

假设我有以下URL值:

http://website.com/tagged/news/
http://website.com/tagged/news
http://www.website.com/tagged/news/
http://www.website.com/tagged/news

我希望有一个PHP函数来获取此示例中的新闻。因此,如果最后一个斜杠后面的值不为空,我想要该值,如果该值为空,则希望获取该斜杠之前的值。我找到了这篇文章:在PHP中从URL中获取斜杠后的最后一个单词,但为了确保安全,即使有人在URL末尾键入斜杠,我也想要非常确定。
4个回答

16

就像这样简单:

substr(strrchr(rtrim($url, '/'), '/'), 1)

或者使用较慢的end(explode("/",$url)),但+1是因为你的更快 - nathan hayfield
@nathan hayfield:不应该使用end(explode("/",$url)),它接受的是引用而不是表达式。 - zerkms
@Nathan Hayfield:它会生成警告。 - zerkms
@nathan hayfield:这与 PHP 作为一种语言无关 :-) - zerkms
@zerkms 噢,不是这样的。我的错。已经测试和验证。+1 - Jules

4
你可以使用basename($url)

1
稍微详细一些,但类似这样的内容应该能够起到作用:
$url = ... //your url
//trim slashes off the end to make sure url doesn't end with slash
$results = explode('/', trim($url,'/'));
if(count($results) > 0){
    //get the last record
    $last = $results[count($results) - 1];
}

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接