similar_text - 字符串/整数比较

similar_text - string / integer comparing

第一次post来这里,欢迎大家!

我正在尝试编写一个规则来简单地保护我的网站免受用户post对其内容的泛滥。我决定使用 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 returns a string where you need an int. So a string comparison to "90" works, but an int comparison fails. You can use int_val 转换为整数。

此外,我想知道您是否还有其他问题。我把你的代码示例和运行放在本地,即使不将(int)换成int_val,它似乎也能正常工作。

具有以下值:

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

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

使用这些值:

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

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