我有以下URI:
/belt/belts/fk/product/40P35871
我想在最后一个/之后检索最后一个内容。 在这种情况下是40P35871。 我怎么能这样做?
答案 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);