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";
$similarity
是 96
并且 if 触发器的大于部分。
使用这些值:
$last_record = "asdfasdfasdf";
$new_record = "fffdfasdfasdf";
$similarity
是 80
并且 if 触发器的小于部分。
第一次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";
$similarity
是 96
并且 if 触发器的大于部分。
使用这些值:
$last_record = "asdfasdfasdf";
$new_record = "fffdfasdfasdf";
$similarity
是 80
并且 if 触发器的小于部分。