2011-11-10 17 views
0

我需要從動態文本字符串中獲取最後一部分。例如:獲取動態文本的最後部分?

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

在這裏,我將需要得到9051284874部分,我在想preg_match

類似於preg_match("@^(?:https://www.facebook.com/pages/OMG/)?([^/]+)@i", $results, $at);$results是動態字符串,但OMG部分也是動態的,所以它不起作用。

基本上我需要的是得到最後一個斜槓(/)之後的部分,任何方式來做到這一點?

回答

2

你可以使用這個簡單的線路(沒有正則表達式):

$lastPart = substr($url, strrpos($url, '/') + 1); 

,甚至更好,以確保該行會,如果字符「/」是不是在字符串中沒有失敗:

if (($pos = strrpos($url, '/')) !== FALSE) 
    $lastPart = substr($url, $pos + 1); 
+0

它的工作原理,謝謝! – Ricardo

1

如果尾部總是數值,然後

if (preg_match('/(\d+)$/', $url, $matches)) { 
    echo $matches[1]; 
} 
1

你可以試試這個:

<?php 
$url = "https://www.facebook.com/pages/OMG/9051284874"; 
$pieces = explode("/", $url); 
$last = $pieces[count($pieces) - 1]; 
?> 
0

首先你應該用parse_url()解析url。這將返回一個關聯數組包含:

Array 
(
[scheme] => http 
[host] => www.facebook.com 
[path] => /pages/OMG/9051284874 
) 

然後,您可以explode($parsedUrl['path'])或使用正則表達式:

preg_match('`/([^/]+)/[^/]*$`', $parsedUrl['path'], $paths);