Php 类似文本-字符串/整数比较
这是我在这里的第一篇帖子,欢迎大家 我正试图写一个规则来保护我的网站不被发布内容的用户淹没。我决定使用PHP中的函数来比较字符串(用户最后添加的字符串和当前添加的字符串),计算相似度(%),如果结果太高(相似度超过90%),脚本将不会向数据库添加记录 以下是我所拥有的: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
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
是整数。非常奇怪。也许这只是个侥幸。如果你愿意接受我的回答,我将不胜感激