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

最初の使用法は2つの文字列間の類似性の割合を返し、2番目の使用法は2つの文字列が持つ類似文字の量を返します。

それがあなたを助けることができることを願っています!

于 2012-06-28T03:57:09.753 に答える