在过滤垃圾信息时,经常会用到比较字符串的相似度,除了利用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 字段,也一样的比较相似度。