2010-01-12 63 views
0

我轉貼了這個問題,因爲我沒有找到一個好的答案。去除混合字符串中的所有網址(php)

我有一個字符串,可以包含與網址的文本。

我想要一個函數從這個字符串中去掉所有的url,並讓文本。

通過實例的字符串可以包含這樣的:

1)哎看看這裏:http://xxx.xxx/545df5這是好的!

2)嘿,看看這裏:http://www.xxx.xxx/545df5這很好!

3)嘿,看看這裏:xxx.xxx/545df5這很好!

4)嘿,看看這裏:www.xxx.xxx/545df5這很好!

感謝

+0

爲什麼重新發布時,你就可以開始一個賞金? – Shoban 2010-01-12 20:12:32

回答

0

你真的需要的是一個堅實的正則表達式來找到一個字符串中的網址,你可以用什麼預置該模式。我可以告訴你,追蹤這樣的正則表達式並不容易。根據您要查找的網址的變體(即http:// vs https:// vs ftp://),您可能會遇到麻煩,試圖解釋所有這些。

Here is a page that I found to be a good start though

0

這個功能應該這樣做(假設你的字符串之間用空格分隔「「):

function isValidURL($url) { 
    return preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url); 
} 

function cleanUpUrls($urls) { 
    $urlArray = explode(' ',$urls); 
    $resultArray = array(); 
    foreach ($urlArray as $url) { 
     if(!isValidURL($url)) { 
      $resultArray[] = $url; 
     } 
    } 
    return implode(' ',$resultArray); 
} 
相關問題