我需要从动态文本字符串中获取最后一部分。例如:
https://www.facebook.com/pages/OMG/9051284874
在这里,我需要获得9051284874
部分,我在考虑preg_match
。
像preg_match("@^(?:https://www.facebook.com/pages/OMG/)?([^/]+)@i", $results, $at);
这样的东西,而$results
是动态字符串,但OMG
部分也是动态的,所以它不起作用。
基本上我需要的是在最后一次斜杠(/
)之后获得该部分,无论如何都可以这样做?
答案 0 :(得分:2)
您可以使用此简单行(不带正则表达式):
$lastPart = substr($url, strrpos($url, '/') + 1);
如果char'/'不在字符串中,甚至更好地确保此行不会失败:
if ( ($pos = strrpos($url, '/') ) !== FALSE)
$lastPart = substr($url, $pos + 1);
答案 1 :(得分:1)
如果尾部总是数字,那么
if (preg_match('/(\d+)$/', $url, $matches)) {
echo $matches[1];
}
答案 2 :(得分:1)
你可以试试这个:
<?php
$url = "https://www.facebook.com/pages/OMG/9051284874";
$pieces = explode("/", $url);
$last = $pieces[count($pieces) - 1];
?>
答案 3 :(得分:0)
首先,您应该使用parse_url()
解析网址。这将返回一个包含以下内容的关联数组:
Array
(
[scheme] => http
[host] => www.facebook.com
[path] => /pages/OMG/9051284874
)
然后您可以explode($parsedUrl['path'])
或使用正则表达式:
preg_match('`/([^/]+)/[^/]*$`', $parsedUrl['path'], $paths);