1

我有以下 URI:

  /belt/belts/fk/product/40P35871

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

4

8 回答 8

5

怎么样explode

$elements = explode('/', $input);
$productId = end($elements);
于 2012-11-21T12:57:09.187 回答
5

这是一个完全不同的解决方案。 (也是最简单的!)

使用basename

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

输出:

40P35871
于 2012-11-21T12:57:28.553 回答
4

对于这样简单的事情,您不需要正则表达式。考虑在此处strrchr使用, 文档

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

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

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

$lastcontent = basename($uri);
于 2012-11-21T12:56:32.740 回答
3

像这样

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

或者

$var = substr($str, strrpos($str,'/') + 1);
于 2012-11-21T13:00:34.443 回答
2

试试这个

$result = preg_replace('%(/(?:[^/]+?/)+)([^/]+)\b%', '$2', $subject);
于 2012-11-21T12:59:55.787 回答
1

用这个:

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

这会给你最后的位置

注意:但仅在此 url 上,查询字符串使其无用,使用需要首先解析 url 以使其正常工作

于 2012-11-21T12:56:40.570 回答
1

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

myUrl = $_SERVER[REQUEST_URL];
$number = substr(strrpos(myUri,'/')+1);
于 2012-11-21T12:57:26.887 回答
1

你不需要regex

找到最后的内容并使用substr()

$lastcontent = substr(strrchr($uri, "/"), 1);
于 2012-11-21T12:58:00.660 回答