Php ile uygulama geliştirirken her yeni projede yeni birşeyler öğreniyoruz. Her proje de ihtiyaçlarımız farklı oluyor ve bu ihtiyaçlarımızı en kolay ve hızlı şekilde çözebileceğimiz fonksiyonları araştırmaya başlıyoruz. Bazen 2 metin arasında ki benzerliği bulmamız gerekebiliyor. "Benzer Makaleler", "Benzer Haberler" vb. bir modül hazırlamamız gerektiğinde bu işlemi php tarafında veya mysql tarafında yapmamız gerekiyor. Mysql'de bir çözüm bulunuyorsa mysql sorgusundan direk benzer içerikleri çekmek performans yönünden daha faydalı olacaktır. Bu makalede php tarafında nasıl benzer içerikleri listeyebileceğimizi anlatacağım. (Mysql çözümü için match against komutlarını araştırabilirsiniz.)
Lafı fazla uzatmadan ve kafa karıştırmadan direk konuya gireyim. :) Php'de bulunan similar_text fonksiyonu sayesinde 2 metin arasında ki benzerlik oranını bulabiliyoruz.
FONKSİYONUN KULLANIMI :
similar_text($metin1, $metin2, $sonuc);
ÖRNEK 1 :
$metin1 = 'Cem'; $metin2 = 'Cemil'; similar_text($metin1,$metin2,$benzerlik); echo '<strong>' . $metin1 . '</strong> ile <strong>' . $metin2 . '</strong> arasında benzerlik oranı : %' . $benzerlik; /* * KODUN ÇIKTISI : * Cem ile Cemil arasında benzerlik oranı : %75 */
ÖRNEK 2 :
$konu = 'Php Operatörler';
$dersler = array(
'Php If Yapısı',
'Mysql Veritabanı Oluşturma',
'Asp.Net try-catch Kullanımı',
'Asp For-Next Döngüsü',
'Php Değişkenler',
'Flash Buton Oluşturma',
'JavaScript Alert Komutu'
);
foreach($dersler AS $ders)
{
similar_text($konu,$ders,$benzerlik);
if($benzerlik >= 50)
{
echo '<p>' . $ders . '</p>';
}
}
Okunma Sayısı : 202
Yorumlar