比较php中的两个字符串,获取不带';不匹配?
有些用户喜欢用大写字母写文章标题,这完全令人讨厌。我不想让他们再写一遍,而是想知道他们写的标题中大写的百分比,这样,如果超过50%,我就用strtolower 我的想法是将它们的字符串转换为小写,看看它与原始字符串有多大的不同(3个不同的字符意味着最初有3个大写字符): 如何比较$title和$title2以获得不匹配的字符数 例如:比较php中的两个字符串,获取不带';不匹配?,php,Php,有些用户喜欢用大写字母写文章标题,这完全令人讨厌。我不想让他们再写一遍,而是想知道他们写的标题中大写的百分比,这样,如果超过50%,我就用strtolower 我的想法是将它们的字符串转换为小写,看看它与原始字符串有多大的不同(3个不同的字符意味着最初有3个大写字符): 如何比较$title和$title2以获得不匹配的字符数 例如: $title='AAAa'; $title2=strtolower($title); $differences=0; 对于($i=0,$l=strlen($tit
$title='AAAa';
$title2=strtolower($title);
$differences=0;
对于($i=0,$l=strlen($title);$i<$l;$i++){
如果($title{$i}!=$title2{$i}){
$differences++;
}
}
您可以试试。在得到的数字中,单位告诉你需要添加多少个字母,数千个告诉你更改了多少个字母(这里可能是你最想要的),数百万告诉你删除的字母的数量。使用PHP的本机函数,我想你会得到你想要的。使用示例:
$title = 'AAAa';
$title2 = 'aaaa';
similar_text ( $title , $title2, $percentege );
echo $percentege . '%'; // Output: 25%
您也可以这样使用它:
echo similar_text ( $title , $title2 ); // Output: 1
第一种用法返回两个字符串之间的相似性百分比,第二种用法返回两个字符串具有的相似字符的数量
希望它能帮助你 你能使用ucfirst或类似的工具吗?我想知道这是否是一个很好的工具。。。。事实上,在重读你的问题之后,我认为这可能有点过头了。@Phoenix
levenshtein()
对于这种情况来说是过头了,levenshtein()
的复杂性是O(m*n)
,但这里只需要O(n)
。
$title = 'AAAa';
$title2 = strtolower($title);
$differences = 0;
for ($i=0,$l=strlen($title); $i < $l; $i++) {
if ($title{$i} !== $title2{$i}) {
$differences++;
}
}
$title = 'AAAa';
$title2 = 'aaaa';
similar_text ( $title , $title2, $percentege );
echo $percentege . '%'; // Output: 25%
echo similar_text ( $title , $title2 ); // Output: 1