2013-06-01 26 views
2

我需要一些使用字符串的PHP幫助。使用字符串 - PHP

我有一個文本框字段,用戶將進入Facebook配置文件鏈接。

例子:http://facebook.com/zuck

現在的問題是我需要的正是這種字符串: 「http://graph.facebook.com/zuck」。

輸入可以像什麼:

http://facebook.com/zuck 

http://www.facebook.com/zuck 

www.facebook.com/zuck 

facebook.com/zuck 

什麼是做到這一點的最好方法是什麼?先謝謝你。

+0

的正則表達式檢查'facebook.com/username'將給予您列出輸入的最佳選擇。 – Matthew

+0

你是什麼意思?你能否詳細說明一下? –

+0

我用正則表達式添加了一個答案。這是一種模糊匹配的方法,因爲'blahblahfacebook.com/asdf/1234'會匹配「asdf」但我假設你正在嘗試在你的匹配中進取。 – Matthew

回答

3

接受的facebook.com/username的格式,其中username是字母數字用點,破折號什麼,和下劃線(不知道Facebook允許精確地):

模式:

if (preg_match('%facebook.com/([a-z0-9._-]+)%i', $input, $m)) 
{ 
    echo 'http://graph.facebook.com/', $m[1], "\n"; 
} 
+0

非常棒的迴應!非常感謝你做的這些。 :)工作! –

0

如果給定的輸入,將永遠爲你給那些我認爲strstr功能將hadle這

$array = array('http://facebook.com/zuck', 'http://www.facebook.com/buck', 'www.facebook.com/luck', 'facebook.com/nuck'); 

foreach($array as $data) 
{ 
    if(strstr($data, 'facebook.com/')) 
    { 
     echo 'http://graph.'.strstr($data, 'facebook.com/') . '<br>'; 
    } 
} 

這將輸出

http://graph.facebook.com/zuck 
http://graph.facebook.com/buck 
http://graph.facebook.com/luck 
http://graph.facebook.com/nuck 
0

查找輸入最後一個斜線

$lastpos = strrchr ($input , '/') 

手動連接url以及最後一個斜槓後的所有內容。

$new_url = 'http://www.facebook.com' . substr($input, $lastpos); 
2

爲什麼不直接詢問用戶的用戶名?不要接受各種各樣的輸入,請設計表格,以便他們只需輸入用戶名。

沿着這條線的東西;

enter image description here

這樣,你甚至不需要驗證或存儲比他們的用戶名以外的任何其他。當Facebook快速移動並打破用戶的網址時,這可能會非常有幫助。或者,如果您想爲圖表API以外的其他內容創建網址,則無需拆分現有網址。

+0

嗯,你是對的。但我需要改變設計,並且不能要求這樣做。 :/另外,有些人不知道如何得到他們的用戶名:P –

0
$url = 'http://facebook.com/zuck'; 
$array = explode('/', str_replace('http://', '', $url)); 
$username = $array[1]; 
$finalurl = 'http://graph.facebook.com/zuck'.$username; 

echo $finalurl; 

這將適用於任何格式的輸入網址。