需要用str_replace做一点改动

时间:2013-03-24 00:49:22

标签: php str-replace

我有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']);

4 个答案:

答案 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'];