2

有些用户喜欢用大写来写帖子标题,这完全是烦人的。我不想让他们再写一次,我想知道他们写的标题的百分比是大写的,所以如果超过 50%,我只需应用 strtolower。

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

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

如何比较 $title 和 $title2 以获得不匹配的字符数?

例如:

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

$differences = '3';
4

3 回答 3

5
$title = 'AAAa';
$title2 =  strtolower($title);
$differences = 0;
for ($i=0,$l=strlen($title); $i < $l; $i++) {
  if ($title{$i} !== $title2{$i}) {
    $differences++;
  }
}
于 2012-06-28T02:03:05.243 回答
2

你可以试试levenshtein($title,$title2,1,1000,1000000)。在得到的数字中,单位告诉您必须添加多少个字母,千位告诉您更改了多少(可能是您最想要的),百万告诉您删除的字母数量。

于 2012-06-28T02:09:04.693 回答
2

使用 PHP 的本机函数similar_text()我想你会得到你想要的。使用示例:

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

similar_text ( $title , $title2, $percentege );

echo $percentege . '%'; // Output: 25%

你也可以这样使用它:

echo similar_text ( $title , $title2 ); // Output: 1

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

希望它可以帮助你!

于 2012-06-28T03:57:09.753 回答