我有2个这样的链接:
http://www.site.com/report/4fbb14
http://www.site.com/4fbb14
所以$_SERVER['REQUEST_URI']
对他们来说就像是:
/报告/ 4fbb14
/ 4fbb14
我只需要4fbb14
我用过
$r_url = str_replace("/","",$_SERVER['REQUEST_URI']);
但是我需要它才能为两个链接工作,这样的事情可以接受吗?
$r_url = str_replace("(/ or report)","",$_SERVER['REQUEST_URI']);
答案 0 :(得分:4)
更简单的是
$r_url = end(explode('/', $_SERVER['REQUEST_URI']));
这可以为你提供上一次正斜杠后的任何内容
答案 1 :(得分:2)
使用正则表达式
在/
之后找到字符串末尾的值。
if ( preg_match("/\/(\d+)$/", "http://www.site.com/report/4fbb14", $result) )
{
$value = $result[1];
}
使用parse_url
和简单的explode
$values = parse_url("http://www.site.com/report/4fbb14");
$parts_of_the_url = explode("/", $values['path']);
$result = end($parts_of_the_url);
答案 2 :(得分:2)
除了php NoOb之外,所有以前的答案都有效,但如果所有链接都具有相同的格式,您可以这样做:
$r_url = $_SERVER['REQUEST_URI'];
$r_url = str_replace("report","",$r_url);
$r_url = str_replace("/","",$r_url);
echo $r_url;
答案 3 :(得分:1)
如果您想获得4fbb14
<?php
$ex = explode('/', 'http://www.site.com/4fbb14');
echo $ex['3'];