2012-05-15 44 views
0

我想弄清楚如何從Facebook頁面獲取頁面名稱,儘管我已經想出瞭如何從http://www.facebook.com/pagename版本獲取它,我無法弄清楚如何測試,並從看起來像這樣的較長版本得到它http://www.facebook.com/pages/pagename/433425324544。如何測試以查看路徑是否以/pages開頭,以及如何使用一個函數從中提取頁面名稱。以下是我用於以標準格式獲取頁面名稱的內容。如何檢測URL的路徑是否以某個詞開始

function get_facebook_username($facebook_url) { 
$url = $facebook_url; 
$result = preg_match("/(https|http)?:\/\/(www\.)?facebook\.com\/?([^\/]*)/", $url, $matches); 
$fb_username = 'default value'; 
if($result == 1){ 
    $fb_username = $matches[3]; 
} else { 
    return; 
} 

echo "$fb_username"; 
} 

我發現了一個更好的辦法來做到這一點,我認爲除了它切斷用戶名中的最後一個字母如果URL是在它的簡化版本。例如。

//---short 
$url = http://www.facebook.com/pagename 
//---long 
$url = http://www.facebook.com/pages/pagename/7532527927346 

<?php 
    $url = $facebook_username; 
    $path = parse_url($url, PHP_URL_PATH); 
    $pathTrimmed = trim($path, 'pages/../'); 
    echo $pathTrimmed; 
?> 

//---short 
pagenam 
//---long 
pagename 

爲什麼短版缺少最後一個字母?

回答

1

的方式,我會去,這是使用下面的代碼使用explode放置鏈接到一個數組:

$url = "http://www.facebook.com/pages/pagename/7532527927346"; 
$result = explode("/", $url); 

你得到下面的數組:

array(6) { 
    [0]=> 
    string(5) "http:" 
    [1]=> 
    string(0) "" 
    [2]=> 
    string(16) "www.facebook.com" 
    [3]=> 
    string(5) "pages" 
    [4]=> 
    string(8) "pagename" 
    [5]=> 
    string(13) "7532527927346" 
} 

那麼簡單如果$ result [3] ==「pages」將允許您檢查url是否包含頁面。

忍者編輯 在地方爆炸,你​​也可以使用的preg_split將返回空數組元素:

$result = preg_split("~/~", $url, -1, PREG_SPLIT_NO_EMPTY); 
+0

快速的問題。所以說,我解析網址到路徑,然後做preg_split。我怎樣才能移除'/ pages'和'/ 238327033'。我嘗試修剪,但刪除了頁面名稱的一部分,如果我修剪'/頁' –

+0

nm我想通了。謝謝! –

相關問題