1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?php // girdi yanlış yazılmış olsun $input = 'carrrot'; // bir sözcük dizisiyle karşılaştıralım $words = array('apple','pineapple','banana','orange', 'radish','carrot','pea','bean','potato'); // en kısa mesafenin bulunamaması durumu $shortest = -1; // En kısa mesafeyi bulmak için döngü foreach ($words as $word) { // girdi ile sözcük arasındaki mesafeyi hesaplatalım $lev = levenshtein($input, $word); // Bir eşleşme var mı bakalım if ($lev == 0) { // en yakın sözcük bu olacak (tam eşleşme) $closest = $word; $shortest = 0; // Tam bir eşleşme bulduğumuza göre döngüden çıkalım break; } // Eğer bu mesafe bir öncekinden kısaysa // veya en kısa mesafe henüz bulunamadıysa if ($lev <= $shortest || $shortest < 0) { // en yakın eşleşmeyi ve en kısa mesafeyi tanımlayalım $closest = $word; $shortest = $lev; } } echo "Girdi: $input\n"; if ($shortest == 0) { echo "Tam eşleşme bulundu: $closest\n"; } else { echo "Doğrusu bu olabilir mi?: $closest\n"; } ?> |
Kaynak : http://php.net/manual/tr/function.levenshtein.php
Php yanlış girdiyi doğru hale getirme (levenshtein Fonksiyonu)