2010-01-12 28 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); 
} 
相关问题