similar_text - 字符串/整数比较

时间:2015-08-05 01:23:06

标签: php string integer type-conversion similarity

这是我在这里的第一篇文章,欢迎大家!

我试图写一条规则来保护我的网站免受发布内容的用户的洪水。我决定在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&lt; 90)。我格式化数字然后将其从字符串转换为int值,但脚本并不关心。

当我使用配额时,它有效: if($相似&lt;&#34; 90&#34;)。问题是当我将值用作整数值时脚本不起作用,并且当我将它用作字符串时它可以工作吗?

1 个答案:

答案 0 :(得分:2)

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触发器的小于部分。