Ceviz Forum ceviz wiki

Geri Dön   Ceviz Forum > Programlama > PHP

Cevapla
 
LinkBack Seçenekler
Eski 15/10/2008, 19:37   #11 (permalink)
artık Bursa
 
chesterx Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 12/2007
Yer: Bursa
Mesaj: 2,162
Varsayılan

evet istisnaları da düşünürsek eğer büyük bir fonksiyon olur
__________________
Bilişim; bilgi ve yetenek meselesi değil ahlak ve karakter meselesidir. . .

www.bursaportal.com

www.sercanvirlan.com
chesterx şu an hatta   Alıntı Yaparak Yanıtla
Eski 15/10/2008, 19:44   #12 (permalink)
Üçekmek
 
Turkoman Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 05/2008
Yer: Sevenlerin Gönlünde
Mesaj: 658
Varsayılan

Sanırım bir if ve ünlüler gösterilerek sorun çok rahat çözülür.
__________________
<?php
$Turkoman = ($kisi == "ÜçEkmek") ? "GERÇEK" : "SAHTE" ;
?>
Turkoman hatta değil   Alıntı Yaparak Yanıtla
Eski 15/10/2008, 19:49   #13 (permalink)
Üye
 
Üyelik Tarihi: 10/2008
Mesaj: 3
Varsayılan

Alıntı:
chesterx, mesajından alıntı: Mesajı Gör
Fakat "Mart, Mort" gibi olursa 'in ekliyor
Şimdi sorun aslında Türkçe'nin sondan eklemeli yapısında.
Dilbilimsel açıdan kural şudur:
3. Tekil şahıs, kelimenin en son sesli harfine göre iylik eki alır.
Ben sondan bir önceki karaktere kadar gittmiştim. Else if le geriye doğru devam edilebilir istediğimiz kadar. Sondan 3. karakteri de eklersek Mert'i de kapsar.

Hatta abartıp sondan dördüncü karakteri de ekledim şöyle oldu:
(Ad değil Mert Merkt bile olsa çalışır bu haliyle )

PHP Kodu:
// ismin nikneymin sonuna iyelik eki ekler
function iyelik($ad)
{
$buyuk = array("A""I""E""İ""U","O""Ü""Ö");
$kucuk = array("a""ı""e""i""u","o""ü""ö");
$kucultulmus str_replace($buyuk$kucuk$ad);


$isim=trim($kucultulmus);
$sonharf substr($isim, -1);    // son karakter
$oncekiharf substr($isim, -21); // sondan bir önceki karakter
$ikioncekiharf substr($isim, -31); // sondan iki önceki karakter
$ = substr($isim, -41); // sondan uc önceki karakter


if ($sonharf=="a" or $sonharf=="ı") {$eki="'nın";}
elseif (
$sonharf=="e" or $sonharf=="i") {$eki="'nin";}
elseif (
$sonharf=="u" or $sonharf=="o") {$eki="'nun";}
elseif (
$sonharf=="ü" or $sonharf=="ö") {$eki="'nün";}

elseif (
$oncekiharf=="a" or $oncekiharf=="ı") {$eki="'ın";}
elseif (
$oncekiharf=="e" or $oncekiharf=="i") {$eki="'in";}
elseif (
$oncekiharf=="u" or $oncekiharf=="o") {$eki="'un";}
elseif (
$oncekiharf=="ü" or $oncekiharf=="ö") {$eki="'ün";}

elseif (
$ikioncekiharf =="a" or $oncekiharf=="ı") {$eki="'ın";}
elseif (
$ikioncekiharf =="e" or $oncekiharf=="i") {$eki="'in";}
elseif (
$ikioncekiharf =="u" or $oncekiharf=="o") {$eki="'un";}
elseif (
$ikioncekiharf =="ü" or $oncekiharf=="ö") {$eki="'ün";}


elseif (
$uconcekiharf =="a" or $oncekiharf=="ı") {$eki="'ın";}
elseif (
$uconcekiharf =="e" or $oncekiharf=="i") {$eki="'in";}
elseif (
$uconcekiharf =="u" or $oncekiharf=="o") {$eki="'un";}
elseif (
$uconcekiharf =="ü" or $oncekiharf=="ö") {$eki="'ün";}

else  {
$eki=" isimli üyenin";} //Gerek yok belki ama işimizi sağlama alıyoruz

/// Ahmet'in, Bengü'nün, Lost_Boy'un şeklinde yazılıyor
$sonuc$ad.$eki;

 return 
$sonuc;

(istersen 4. beşinci karaktere kadar gitmek mümkün) Sanırım bu işe yarar.
Etyka hatta değil   Alıntı Yaparak Yanıtla
Eski 15/10/2008, 19:57   #14 (permalink)
Üçekmek
 
Turkoman Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 05/2008
Yer: Sevenlerin Gönlünde
Mesaj: 658
Varsayılan

Alıntı:
Etyka, mesajından alıntı: Mesajı Gör
Şimdi sorun aslında Türkçe'nin sondan eklemeli yapısında.
Dilbilimsel açıdan kural şudur:
3. Tekil şahıs, kelimenin en son sesli harfine göre iylik eki alır.
Ben sondan bir önceki karaktere kadar gittmiştim. Else if le geriye doğru devam edilebilir istediğimiz kadar. Sondan 3. karakteri de eklersek Mert'i de kapsar.

Hatta abartıp sondan dördüncü karakteri de ekledim şöyle oldu:
(Ad değil Mert Merkt bile olsa çalışır bu haliyle )
1 - "3. Tekil şahıs, kelimenin en son sesli harfine göre iylik eki alır." Bu kurala göre isim Kemal olursa Kemal'ın mı yoksa Kemal'in mi olmalı?

2- Fazla if else ye gerek yok son ünlüyü bulduracak bir işlev(fonksiyon) yardımcı olacaktır.
__________________
<?php
$Turkoman = ($kisi == "ÜçEkmek") ? "GERÇEK" : "SAHTE" ;
?>
Turkoman hatta değil   Alıntı Yaparak Yanıtla
Eski 15/10/2008, 19:59   #15 (permalink)
artık Bursa
 
chesterx Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 12/2007
Yer: Bursa
Mesaj: 2,162
Varsayılan

Alıntı:
Kemal'ın mı yoksa Kemal'in mi olmalı?
=>Kemâl
benzer durum
Gol kelimesinde o harfi inceltme işareti almazken ince okunur (futboldaki gol)
__________________
Bilişim; bilgi ve yetenek meselesi değil ahlak ve karakter meselesidir. . .

www.bursaportal.com

www.sercanvirlan.com
chesterx şu an hatta   Alıntı Yaparak Yanıtla
Eski 15/10/2008, 20:03   #16 (permalink)
Üçekmek
 
Turkoman Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 05/2008
Yer: Sevenlerin Gönlünde
Mesaj: 658
Varsayılan

Bu arada Etyka, yaptığın çalışma gerçekten takdire şayan sakın yermek için yazdığımı sanma. Çok sevdiğim bir konu olduğu için sormadan duramıyorum.
__________________
<?php
$Turkoman = ($kisi == "ÜçEkmek") ? "GERÇEK" : "SAHTE" ;
?>
Turkoman hatta değil   Alıntı Yaparak Yanıtla
Eski 15/10/2008, 20:16   #17 (permalink)
Üye
 
Üyelik Tarihi: 10/2008
Mesaj: 3
Varsayılan

Alıntı:
Turkoman, mesajından alıntı: Mesajı Gör
Bu arada Etyka, yaptığın çalışma gerçekten takdire şayan sakın yermek için yazdığımı sanma. Çok sevdiğim bir konu olduğu için sormadan duramıyorum.
Yok ya ne alınıcam rica ederim Kelimenin en son sesli harfini direk bulup if else basmasak daha mantıklı olur tabi . Ama kelimenin en son harfi istisna duruma sahip.

Çünkü eğer en son harf sesliyse ve misal e harfiyse in değil nin eki alıyor. Sadece son sesli harfi bulursak ve mesela son sesli harf ü ise nün mü yoksa ün mü yazdıracağımız karışıyor.

O yüzden biraz da mecburen harf harf geriye gittim

Bu arada yukarıdaki son halinde gözümden kaçmış:
PHP Kodu:
$= substr($isim, -41); // sondan uc önceki karakter 
yerine aşağıdaki olması lazım tabi.
PHP Kodu:
$uconcekiharf substr($isim, -41); // sondan uc önceki karakter 
Etyka hatta değil   Alıntı Yaparak Yanıtla
Eski 15/10/2008, 20:39   #18 (permalink)
Üye
 
arikan Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 06/2007
Yer: Bursa
Mesaj: 380
Varsayılan

Elinize Sağlık
arikan hatta değil   Alıntı Yaparak Yanıtla
Eski 15/10/2008, 20:42   #19 (permalink)
Üçekmek
 
Turkoman Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 05/2008
Yer: Sevenlerin Gönlünde
Mesaj: 658
Varsayılan

İsim ya da isim işlevindeki kelime ya da kelime grubu ünsüz ile bitiyorsa ek +In* şeklinde gelir. Eğer ünlü ile bitiyorsa +nIn şeklinde eklenir.

Eğer kelimenin hece yapısı KVKK (Mert) ya da VKK (Alp) (K[konsonant] = ünsüz V[vokal] = ünlü) ise bu durumda en sondaki ünlü aranıp buna göre bu eklerden birisi gelir.

Saat, Kemal, gol gibi istisnaların -ki bunlar yabancı kökenli Türkçe kelimelerdir - yazılacak uygulamaya ayrıca tanıtılması gerekir.


* burada +In ekin +In, +İn, +Un, +Ün şekilleri anlamında
__________________
<?php
$Turkoman = ($kisi == "ÜçEkmek") ? "GERÇEK" : "SAHTE" ;
?>
Turkoman hatta değil   Alıntı Yaparak Yanıtla
Eski 15/10/2008, 20:43   #20 (permalink)
where id='Linux'
 
zbahadir Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 07/2006
Yer: Trabzon
Mesaj: 798
Varsayılan

Gittikçe gelişiyor, çok kişinin işine yarayacaktır.
Paylaştığın ve emeğin için tekrar teşekkürler Etyka.
zbahadir hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Etiketler
eki , iyelik eki , php , türkçeleştirme


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık



Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 16:54.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Oyunlar | ÇOCUK oyunları | Oyunlar | Yusuf KOÇ | Akın Yorulmaz | şiir | Web Tasarım | Dsmart | Arkadaş | Evlilik | Oyunlar | indir | Haber | Chat | Muhabbet | D dili |


Forum Yazılımı: vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net