Php 类似文本-字符串/整数比较

Php 类似文本-字符串/整数比较,php,string,integer,type-conversion,similarity,Php,String,Integer,Type Conversion,Similarity,这是我在这里的第一篇帖子,欢迎大家 我正试图写一个规则来保护我的网站不被发布内容的用户淹没。我决定使用PHP中的函数来比较字符串(用户最后添加的字符串和当前添加的字符串),计算相似度(%),如果结果太高(相似度超过90%),脚本将不会向数据库添加记录 以下是我所拥有的: similar_text($last_record, $new_record, $sim); $similarity = (int) number_format($sim, 0); if ($similarity < 9

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

我正试图写一个规则来保护我的网站不被发布内容的用户淹没。我决定使用PHP中的函数来比较字符串(用户最后添加的字符串和当前添加的字符串),计算相似度(%),如果结果太高(相似度超过90%),脚本将不会向数据库添加记录

以下是我所拥有的:

similar_text($last_record, $new_record, $sim);
$similarity = (int) number_format($sim, 0);

if ($similarity < 90)
{
  // add the record
}
else
{
  // dont add anything
}
类似文本($last\u record,$new\u record,$sim);
$similarity=(int)数字_格式($sim,0);
如果($90)
{
//添加记录
}
其他的
{
//不要添加任何内容
}
问题在于:如果($similarity<90)。我格式化数字,然后将其从字符串转换为int值,但脚本并不在意

当我使用配额时,它是有效的:if($similarity<“90”)。问题是,为什么当我将该值用作整数值时脚本不起作用,而当我将其用作字符串时脚本却起作用?

返回一个需要整数的字符串。因此,与“90”的字符串比较可以起作用,但整数比较失败。可以使用转换为int

还有,我想知道你是不是出了什么问题。我获取了您的代码示例并在本地运行,即使没有将
(int)
替换为
int\u val
,它似乎也能正常工作

具有以下值:

$last_record = "asdfasdfasdf";
$new_record = "aasdfasdfasdf";
$similarity
96
和if触发器的大于部分

使用这些值:

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

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

谢谢您的回答。事实上这很奇怪。我使用
var\u dump()
函数检查
$similarity
,它说
$similarity
是整数。非常奇怪。也许这只是个侥幸。如果你愿意接受我的回答,我将不胜感激