PHP:只回显url的最后一部分,intead代码打印整个url

时间:2015-04-10 09:20:41

标签: php

我想在网址中打印“/”后面的最后一个字符。但它打印整个网址,我期望输出只是“index.php”,而不是打印出整个网址。

我该怎么做呢?

 $data = $_SERVER['REQUEST_URI'];
    $whatIWant = substr($data, strpos($data, "/") + 1); 
     echo $whatIWant;

你可以看到它here

6 个答案:

答案 0 :(得分:1)

你应该通过

获得实际的链接
<?php
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$getpath=explode("/",$actual_link);
echo end($getpath);
?>

简短说明:

第1步:

获取网址
http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]

第2步:以斜线

爆炸
explode("/",$actual_link)

第3步:获取最后一部分

end($getpath);

答案 1 :(得分:0)

试试这个..

<?php
$data = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$whatIWant = explode("/",$data);
 echo end($whatIWant);?>

答案 2 :(得分:0)

你也可以使用strrchr

这样试试
$url = 'http://spiritofethiopia.com/test/test/test/index.php';
$str = substr(strrchr($url, '/'), 1);
echo $str;
  

strrchr - 查找字符串中最后一个字符。

答案 3 :(得分:0)

试试这个:

工作解决方案,

<?php 

  $url = 'http://test/test/test/index.php';
  $tokens = explode('/', $url);
  echo $tokens[sizeof($tokens)-1];

?>

答案 4 :(得分:0)

您可以将preg_match与正确的RegExp一起使用来捕获URL的末尾。

<?php
$data = $_SERVER['REQUEST_URI'];

if(preg_match('#/([^/]*?)$#', $data, $matches) == 1) {
    echo $matches[1];
}
else {
    // Should not happen
    /*
     * Throw exception
     */
}

&GT;

答案 5 :(得分:0)

尝试strripos而不是strpos,它可能有效

<?php
    $data = $_SERVER['REQUEST_URI'];
    $whatIWant = substr($data, strripos($data, "/") + 1); 
        echo $whatIWant;
    ?>