我想在网址中打印“/”后面的最后一个字符。但它打印整个网址,我期望输出只是“index.php”,而不是打印出整个网址。
我该怎么做呢?
$data = $_SERVER['REQUEST_URI'];
$whatIWant = substr($data, strpos($data, "/") + 1);
echo $whatIWant;
你可以看到它here
答案 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;
?>