<?php
echo preg_replace("/(?<=href=)([^/>]*)(?=/>)/i","#", "<a href='www.csdn.net'>你好,点这里看看</a><a href='www.sina.com'>你好,点这里看看</a>");
?>
正则:/(?<=href=)([^/>]*)(?=/>)/
(?<=exp) | 匹配exp后面的位置 |
(?=exp) | 匹配exp前面的位置 |
此正则 匹配 在 href= 之后 “>” 之前 的 非 “>” 的所有字符
例子:<a href='www.csdn.net'>
找到这些字符(url)用 # 替换,就可以去掉html里的所有链接。
如有的链接我想保留怎么呢?
下面这个函数将非本站的链接统统都去掉 然后换上本站的链接
在这里我们用 preg_replace_callback 此函数可调用一个回调来对每次的匹配作处理
clearurl($str)
{
return preg_replace_callback( "/(?<=href=)[^>]*(?=/>)/i","fiterurl",$str);
}
function fiterurl($matches)
{
$str=$matches[0];//每次的匹配
$pos = strpos($str, "tootoomart.com");//判断匹配是否是本站的链接
if(!$pos) //作相应的处理
{
return "http://www.tootoomart.com"; //非本站链接替换
}else
{
return $str; //本站链接不做处理
}
}
另:$string = preg_replace( "/<script.*?//script/>/i","",$string)//去javascript;