在过滤垃圾信息时,经常会用到比较字符串的相似度,除了利用cookies、IP限制等技术外,还可以利用PHP自身带的similar_text函数,进行判断用户发帖内容的相似度。
similar_text() 函数计算两个字符串的匹配字符的数目,也可以计算两个字符串的相似度(以百分比计)。
例子,注意Mysql_query、Mysql_fetch_array及similar_text的用法:
<?php /** * 比较字符串的相似度 * edit by www.jb200.com */ require('conn.php'); $sql="select title from content order by id desc limit 20"; //判断标题相似度 $result=mysql_query($sql,$conn); $cf=0; while($row=mysql_fetch_array($result)){ similar_text($row['title'], $title, $percent); //比较相似度 存放于$percent if($percent>90){$cf=1;break;} //飘易注:相似度高于90% 则判断重复 } if($cf==1){ echo "<SCRIPT language=JavaScript>alert('抱歉!禁止发布重复信息!');"; echo "this.location.href='vbscript:history.back()';</SCRIPT>"; mysql_close(); exit(); } ?>
代码说明:
其中title字段可以扩展成其他字段,如 content 字段,也一样的比较相似度。