PHP - 从特定网站查找链接并删除

时间:2011-03-24 06:51:50

标签: php regex

我收到了一个字符串,其中包含来自不良网站的大量错误链接,并且还为我的用户提供了有用的链接。

我需要一种方法来删除不良链接。如下面的方法

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

2 个答案:

答案 0 :(得分:1)

试试这个

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

但最好的方法是不使用正则表达式,并使用DOM

答案 1 :(得分: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