v2.5.2
Giriş yap

Facebook ile ilgili

Anonim
991 defa görüntülendi ve 2 kişi tarafından değerlendirildi

İyi günler, aklıma bir şey takıldı bu aralar böyle dikkatimi çeken bir şey oldu. Mesela ardakaşım olmayan birinin profilne girince: Örnek olarak vermem gerekirse Ahmet'i, Hasan'ı Tayfun'u gibi farklı isimlerin sonunda biten harfler var bunu hangi mantıkla yapıyorlar

Cevap yaz
Cevaplar (7)
shelby
1729 gün önce
canpacis
1729 gün önce

Yazdım geldim hocam. TMWWDW/case-suffixes.
JavaScript ve TypeScript versiyonu var, src klasöründen alıp istediğin gibi
kullanabilirsin.

canpacis
1729 gün önce

https://github.com/cengizhancaliskan/iyelik-eki projenin javascript versiyonu da yapılabilirmiş. Sağol Tayfun hocam aklıma bir fikir geldi...

tayfunerbilen
1730 gün önce

PHP iyelik eki ile ilgili bir sınıf vardı, inceleyebilirsin;
https://github.com/cengizhancaliskan/iyelik-eki

canpacis
1730 gün önce
// Ünlünün hangi tip ünlü olduğunu belirle

$tip = "";

if(in_array($harf, $duz_unluler)) {
    $tip = "düz";
}elseif (in_array($harf, $yuvarlak_unluler)) {
    $tip = "yuvarlak";
}

// İSMİN BELİRTME HALİNDE;
// Yuvarlak ünlülerde eğer harf arka yuvarlaksa (o, u) kelimeyi u takip eder
// Yuvarlak ünlülerde eğer harf ön yuvarlaksa (ö, ü) kelimeyi ü takip eder
// Düz ünlülerde eğer harf arka düzse (a, ı) kelimeyi ı takip eder
// Düz ünlülerde eğer harf ön düzse (e, i) kelimeyi i takip eder

//      Tabi kelimenin sesli harfle bitip bitmediğini de kontrol etmen gerekir
//      Eğer ünlü ile bitiyorsa hâl ekinden önce gereken kaynaştırma ünsüzünü (y, ş, s, n) ekleyebilirsin

// Kelimeyi takip edecek hâl ekine kuyruk diyelim
$kuyruk = "";

if($tip == "yuvarlak") {
    // Arka yuvarlak mı?
    if($harf == "o" || $harf == "u"){
        $kuyruk = "u";
    // Ön yuvarlak mı?
    }elseif ($harf == "ö" || $harf == "ü") {
        $kuyruk = "ü";
    }
}elseif($tip == "düz") {
	// Arka düz mü?
    if($harf == "a" || $harf == "ı"){
        $kuyruk = "ı";
    // Ön düz mü?
    }elseif ($harf == "e" || $harf == "i") {
        $kuyruk = "i";
    }
}

canpacis
1730 gün önce

Şöyle bir algoritma işini görür muhtemelen;

/* Kelimenin son ünlüsü düz ünlü mü yoksa yuvarlak ünlü mü kontrol et */

// Tüm ünlüleri tanımla; 
$unluler = ["a", "e", "ı", "i", "o", "ö", "u", "ü"];
// Düz ünlüleri tanımla; 
$duz_unluler = ["a", "e", "ı", "i"];
// Yuvarlak ünlüleri tanımla; 
$yuvarlak_unluler = ["o", "ö", "u", "ü"];

// Girilen metni ters çevir örn: "Tayfun" => "nufyaT"

/* PHP'de strrev( $string );  fonksiyonu işini görür. */

// Herhangi bir ünlü harfe denk gelene kadar bütün harfleri tek tek kontrol et
$input = "Tayfun";
$kelime = strrev($input);
$index = 0;
$harf = $kelime[$index];

while(!in_array($harf, $unluler)) {
  $index++;
  $harf = $kelime[$index];
} 

// Bu şekilde son seslinin "u" olduğunu anlayabilirsin, bu örnekte $harf değişkeni "u" değerini taşıyor.
canpacis
1730 gün önce

Türkçedeki küçük ünlü uyumu ile alakalı bir sıkıntı bu, manuel şekilde kodlayabilirsin,
sadece algoritmayı çıkarman gerekiyor.