2011-03-24 60 views
1

我收到了一個字符串,其中包含很多來自不良網站的不良鏈接,還有一些對我的用戶有用的鏈接。PHP - 查找特定網站的鏈接並刪除

我需要一種方法來僅刪除不良鏈接。如下面

remove('regex', badsite.com, ''); // remove all links from badsite.com 
remove('regex', viagra.com, ''); // remove links from viagra.com 

回答

0

檢查這個我覺得這可能會幫助你...

<?php 
function remove($string) { 
    $patterns = array(); 
    $patterns[0] = '/http:\/\/www.badsite.com/'; 
    $patterns[1] = '/http:\/\/www.viagra.com/'; 
    $patterns[2] = '/badsite.com/'; 
    $patterns[3] = '/viagra.com/'; 



    $replacements = array(); 
    $replacements[0] = '**Remove**'; 
    $replacements[1] = '**Remove**'; 
    $replacements[2] = '**Remove**'; 
    $replacements[3] = '**Remove**'; 

    echo preg_replace($patterns, $replacements, $string); 
} 

$string = "This is my url http://www.badsite.com and one more dirty site http://www.viagra.com one good site http://www.google.com"; 

remove($string); 
?> 

輸出 -

這是我的網址刪除和一個更骯髒網站從刪除一個很好的網站http://www.google.com

+0

這是偉大的,可以你讓它刪除查詢字符串和段? – 2011-03-24 14:32:13

1

方法試試這個

preg_replace('@<a[^<>]*href="(?:http://|https://)(?:badsite\.com|viagra\.com)[^"]*"[^<>]*>@Uis', '', $str); 

但最好的辦法是不使用正則表達式,並使用DOM

+0

心中已經編輯正則表達式'[^ 「] +''到[^」] *' – azat 2011-03-24 07:01:15