如何使用php获取URL最后一部分

时间:2015-03-24 15:50:45

标签: php url

我正在寻找显示页面当前网址的解决方案,我发现了一些,但我不知道如何实现它们并调用它们,所以这是我找到的最佳解决方案,因为它已经有回声了。

function curPageURL() {
     $pageURL = 'http';
     if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
     $pageURL .= "://";
     if ($_SERVER["SERVER_PORT"] != "80") {
      $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
     } else {
      $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
     }
     return $pageURL;
    }

要称呼它,我就是这样称呼它

echo curPageURL();

但我想只获取URL的最后一部分,例如:

http://stackoverflow.com/posts/29237151/thequestion

我希望得到thequestion部分网址。我怎么能这样做?

5 个答案:

答案 0 :(得分:2)

正如评论中所述,最好的方法是explode()然后array_pop()您的网址。

像这样:

function curPageURL() {

    $url = $_SERVER['REQUEST_URI'];
    $url = explode('/', $url);
    $lastPart = array_pop($url);

    return $lastPart;
}

@Vineet答案也是合适的。

答案 1 :(得分:0)

在你的情况下。请改变

$url = curPageURL();

它将为您提供完整的URL,然后按如下所示编写行

$new = explode("/", $url);
$last_part = end($new);

它会提供您想要的输出。

答案 2 :(得分:0)

你也可以试试这个

echo substr(strrchr(curPageURL(), "/"), 1);

答案 3 :(得分:0)

http://php.net/manual/en/function.parse-url.php

PHP有一个名为parse_url()的函数,它将...解析一个URL。 你要找的是结果的path部分。

<?php
$url = 'http://stackoverflow.com/posts/29237151/thequestion?arg=value#anchor';
$pathParts = parse_url($url, PHP_URL_PATH);
$lastPart = array_pop(explode('/',  $pathParts));
echo $lastPart;

答案 4 :(得分:0)

我认为最短的方式是:

end(explode('/',  $url));