有些用户喜欢以大写形式写帖子标题,这非常烦人。我不想让他们再写一遍,而是想知道他们写的标题的百分比是大写的,这样如果他们超过50%我就会申请strtolower。
我的想法是将他们的字符串变成小写,看看它与原始字符串有多么不同(3个不同的字符最初意味着有3个大写字符):
$title = 'AAAA';
$title2 = strtolower($title);
如何将$ title与$ title2进行比较以获取不匹配的字符数?
例如:
$title = 'AAAa'
$title2 = 'aaaa'
$differences = '3';
答案 0 :(得分:5)
$title = 'AAAa';
$title2 = strtolower($title);
$differences = 0;
for ($i=0,$l=strlen($title); $i < $l; $i++) {
if ($title{$i} !== $title2{$i}) {
$differences++;
}
}
答案 1 :(得分:2)
您可以尝试levenshtein($title,$title2,1,1000,1000000)
。在结果数字中,单位会告诉您需要添加多少个字母,数千个字母会告诉您有多少字母被更改(可能是您最想要的字母),数百万字母会告诉您已删除字母的数量。
答案 2 :(得分:2)
使用PHP的本机函数similar_text()我认为你会得到你想要的。使用示例:
$title = 'AAAa';
$title2 = 'aaaa';
similar_text ( $title , $title2, $percentege );
echo $percentege . '%'; // Output: 25%
您也可以这样使用它:
echo similar_text ( $title , $title2 ); // Output: 1
第一种用法返回两个字符串之间的相似性百分比,第二种用法返回两个字符串所具有的相似字符的数量。
希望它可以帮到你!