我收到了一个字符串,其中包含来自不良网站的大量错误链接,并且还为我的用户提供了有用的链接。
我需要一种方法来删除不良链接。如下面的方法
remove('regex', badsite.com, ''); // remove all links from badsite.com
remove('regex', viagra.com, ''); // remove links from viagra.com
答案 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