隔离数字存在于URI的末尾

时间:2012-11-21 12:54:17

标签: php regex

我有以下URI:

  /belt/belts/fk/product/40P35871

我想在最后一个/之后检索最后一个内容。 在这种情况下是40P35871。 我怎么能这样做?

8 个答案:

答案 0 :(得分:5)

explode怎么样?

$elements = explode('/', $input);
$productId = end($elements);

答案 1 :(得分:5)

以下是完全不同的解决方案。(最简单!)

使用 basename

$var = "/belt/belts/fk/product/40P35871";
echo basename($var);

<强>输出:

40P35871

答案 2 :(得分:4)

你不需要像这样简单的正则表达式。考虑使用strrchr,文档here

$lastcontent = substr(strrchr($uri, "/"), 1);

考虑到这个特殊情况$ uri是一条路径,最好的答案是Chtulhu提供的答案。

basename将返回路径的最后一部分,文档here

$lastcontent = basename($uri);

答案 3 :(得分:3)

就像这样

$str = '/belt/belts/fk/product/40P35871';
$arr = explode('/', $str);
$var = array_pop($arr);
var_dump($var);

$var = substr($str, strrpos($str,'/') + 1);

答案 4 :(得分:2)

试试这个

$result = preg_replace('%(/(?:[^/]+?/)+)([^/]+)\b%', '$2', $subject);

答案 5 :(得分:1)

使用它:

echo preg_replace('/[a-z0-9]$/i', '$1', $url);

这会给你最后的位置

注意:但仅在此网址上,查询字符串会使此无用,并且需要首先解析相同的网址才能使其正常工作

答案 6 :(得分:1)

不要使用正则表达式。在这种情况下,您可以充当以下

myUrl = $_SERVER[REQUEST_URL];
$number = substr(strrpos(myUri,'/')+1);

答案 7 :(得分:1)

您不需要regex

查找最后一个内容并使用substr()

获取
$lastcontent = substr(strrchr($uri, "/"), 1);