Similar_text -字符串/整数比较


similar_text - string / integer comparing

这是我在这里的第一个帖子,欢迎大家!

我正试图写一个规则来简单地保护我的网站免受用户发布它的内容泛滥。我决定在PHP中使用similar_text()函数来比较字符串(用户最后添加的字符串和当前添加的字符串),计算相似性(%),如果结果太高(类似于90%以上),脚本将不会向数据库添加记录。

我有:

similar_text($last_record, $new_record, $sim);
$similarity = (int) number_format($sim, 0);
if ($similarity < 90)
{
  // add the record
}
else
{
  // dont add anything
}

问题在于:if ($similarity <90) 。我格式化数字,然后将其从字符串转换为int值,但脚本并不关心。

当我使用配额时,它可以工作:if ($similarity <"90")。问题是为什么脚本不工作,当我使用的值作为一个整数值,它的工作,当我使用它作为一个字符串?

number_format返回一个字符串,而您需要一个int。因此,与"90"的字符串比较有效,但与int比较失败。您可以使用int_val将其转换为int类型。

还有,我想知道你是否还有别的地方出了问题。我拿了你的代码样本,并在本地运行它,它似乎工作得很好,即使没有交换(int)int_val

具有以下值:

$last_record = "asdfasdfasdf";
$new_record = "aasdfasdfasdf";

$similarity96和if触发器的大于部分。

$last_record = "asdfasdfasdf";
$new_record = "fffdfasdfasdf";

$similarity80和if触发器的小于部分。