1

我试图防止用户在我的网站上使用 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)    

无论如何要检查这个吗?

4

1 回答 1

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)

您还可以使用这两种方法来防止小的变化(如排列)。

http://www.php.net/manual/en/function.similar-text.php

于 2013-07-16T13:51:57.493 回答