获取动态文本的最后一部分?

时间:2011-11-10 20:05:57

标签: php preg-match

我需要从动态文本字符串中获取最后一部分。例如:

https://www.facebook.com/pages/OMG/9051284874

在这里,我需要获得9051284874部分,我在考虑preg_match

preg_match("@^(?:https://www.facebook.com/pages/OMG/)?([^/]+)@i", $results, $at);这样的东西,而$results是动态字符串,但OMG部分也是动态的,所以它不起作用。

基本上我需要的是在最后一次斜杠(/)之后获得该部分,无论如何都可以这样做?

4 个答案:

答案 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);