比较php中的两个字符串获取不匹配的字符数?

时间:2012-06-28 01:58:35

标签: php

有些用户喜欢以大写形式写帖子标题,这非常烦人。我不想让他们再写一遍,而是想知道他们写的标题的百分比是大写的,这样如果他们超过50%我就会申请strtolower。

我的想法是将他们的字符串变成小写,看看它与原始字符串有多么不同(3个不同的字符最初意味着有3个大写字符):

$title = 'AAAA';
$title2 =  strtolower($title);

如何将$ title与$ title2进行比较以获取不匹配的字符数?

例如:

$title = 'AAAa'
$title2 = 'aaaa'

$differences = '3';

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

第一种用法返回两个字符串之间的相似性百分比,第二种用法返回两个字符串所具有的相似字符的数量。

希望它可以帮到你!