我试图阻止用户在我的网站上使用php重复发帖 要做到这一点我检查用户输入的标题与数据库中的标题字段,如果在数据库系统中找到此标题的记录显示错误消息给用户,但有些用户更改标题的小字符,例如一些用户更改字符位置,如下所示:
主标题:microsoft office lite(x86,x64)
change by user: microsoft office lite( x64,x86)
change by user: microsoft office_lite( x86,x64)
change by user: microsoft office_lite( x64,x86)
change by user: microsoft office lite by rob( x64,x86)
无论如何要检查这个?
答案 0 :(得分:0)
您可以使用php函数similar_text
计算两个字符串之间的相似度(百分比):
$str1 = 'microsoft office lite(x86,x64)';
$str2 = 'microsoft office lite( x64,x86)';
similar_text($str1, $str2, $percent);
if (percent < 95) {
// accept it
} else {
// error message
}
或(我的推荐方式),使用正则表达式(http://php.net/manual/en/function.preg-match.php)从空格和其他不需要的单词中删除字符串(例如:xxxx)
您也可以使用这两种方法来防止小的变化(例如排列)。