Archive

Archive for June 4th, 2008

php利用正则判断链接标签的方法

June 4th, 2008

/*
/*要说明一下这个功能
/*这个功能是测试一个(非)HTML 超链接标签,并对其进行替换.
/*要点1:不对链接内的关键字进行替换。写这么一大堆主要是为了实现这个的测试
/*要点2:不对已经有链接的关键字进行替换.
*/

//所需要替换的关键标识
$keyword='bpsky';
 
//所需替换内容
$replacement='<a href="xx">bpsky</a>';
 
//源内容
$string ="bpsky 东南西北bpsky<a href='http://www.bpsky.net' >cbpskyc</a>bpsky<a href='http://www.bpsky.net' >bpsky</a>";
 
//正则
$pattern="/($keyword)|(<a[^>]+href=[\'\"].+?[\'\"][^>]+>.*?$keyword.*?<\/[^>]+>)/";
 
//preg_replace_callbak的子函数
function subAutoURL($pattern){
     global $replacement;
 
     //判断第子模式的内容是否去全局内容匹配,如果匹配,说明其为非标签,返回外部导入的替换内容.
     return $pattern[1]==$pattern[0]?$replacement:$pattern[0];
}
 
//检测与替换
$content = preg_replace_callback($pattern,'subAutoURL',$string);
 
echo "Key :$keyword<br />";
echo "$content<br />";
echo "$string<br />";

PHP&MYSQL ,