v2.5.2
Giriş yap

Konum iyelik eki

qplot
605 defa görüntülendi

Konum paylaşımında iyelik eki yapıyorum

Bildiğiniz Saçmalamayan iyelik eki fonksiyonu varmıdır.

Bir şeyler buldum lakin sonuç bu :)

https://gist.github.com/kemalaydin/55dbb85fbf44a3021783

Ongözlü Köprü'da
Hasan Paşa Hanı'da
Diyarbakır Ulu Cami'de

Cevap yaz
Cevaplar (10)
canpacis
881 gün önce

İyelik eki için Tayfun hoca şöyle bir şey paylaşmıştı şu postta. Ama burdaki örnekler iyelik eki değil hâl ekleri. JavaScript'e düşerim diyorsan şöyle bir kütüphanem var, reklamını yapmış olayım.

sync
891 gün önce

test ettik :) @qplot

qplot
891 gün önce

Teşekkürler sync epey uğraşmıssın kontrol edeyim pc başıan geçince sonuçları iletirim.
olsun olmasın sana bir kahve ısmarlamak isterim emeğin karşılıksız kalmamalı :)

sync
893 gün önce

Gece gece olduğu kadar artık :) Sadece konum için. Kişi, hal, bulunma ekleri de eklenebilir.

<?php

class Suffix {

    private $isim;
    private $sertUnsuzler = ["ç", "f", "h", "k", "p", "s", "ş", "t"];
    private $ek = "";
    private $hal = "";
    private $uzunluk = 0;

    function __construct()
    {
        $this->isim = "";
    }

    function set($isim) {
        $this->isim = $isim;
        $this->uzunluk = mb_strlen($isim);
        return $this;
    }

    function get($iyelik, $ayrac = false, $isaret) {

        if($ayrac === false)
            $this->ek = "";
        $this->ek = $isaret;

        return $this->iyelik($iyelik);
    }

    function iyelik($iyelik) {

        $sonHarf = mb_substr($this->isim, $this->uzunluk - 1, 1, "UTF-8");
        $sonEk = mb_substr($this->isim, $this->uzunluk - 2, 1, "UTF-8");
        preg_match_all("/[{aeıioöuü}\s]/ui", $this->isim, $eslesen);

        $eslesenSonHarf = $eslesen[0][count($eslesen[0]) - 1];

        switch($iyelik){
            case 'de':
            case 'den':
                if($sonHarf == 'a' || $sonHarf == 'ı' || $sonHarf == 'o' || $sonHarf == 'u') {
                    $this->hal = $iyelik == 'de' ? 'da' : 'dan';
                }elseif($sonHarf == 'e' || $sonHarf == 'i' || $sonHarf == 'ö' || $sonHarf == 'ü') {
                    $this->hal = $iyelik == 'de' ? 'de' : 'den';
                }elseif(in_array($sonHarf, $this->sertUnsuzler) && ($eslesenSonHarf == 'a' || $eslesenSonHarf == 'ı' || $eslesenSonHarf == 'o' || $eslesenSonHarf == 'u')) {
                    $this->hal = $iyelik == 'de' ? 'ta' : 'tan';
                }elseif(in_array($sonHarf, $this->sertUnsuzler) && ($eslesenSonHarf == 'e' || $eslesenSonHarf == 'i' || $eslesenSonHarf == 'ö' || $eslesenSonHarf == 'ü')) {
                    $this->hal = $iyelik == 'de' ? 'te' : 'ten';
                }elseif($eslesenSonHarf == 'a' || $eslesenSonHarf == 'ı' || $eslesenSonHarf == 'o' || $eslesenSonHarf == 'u') {
                    $this->hal = $iyelik == 'de' ? 'da' : 'dan';
                }elseif($eslesenSonHarf == 'e' || $eslesenSonHarf == 'i' || $eslesenSonHarf == 'ö' || $eslesenSonHarf == 'ü') {
                    $this->hal = $iyelik == 'de' ? 'de' : 'den';
                }elseif(in_array($sonHarf, $this->sertUnsuzler)) {
                    $this->hal = $iyelik == 'de' ? 'ta' : 'tan';
                }else{
                    $this->hal = $iyelik == 'de' ? 'da' : 'dan';
                }
            break;
        }
        $this->hal = ($sonEk == 'n') ? $sonEk . $this->hal : $this->hal;
        $this->isim .= $this->ek . $this->hal;
        return $this->isim; 
    }

}

$suffix = new Suffix();

echo $suffix->set('On Gözlü Köprü')->get("de", true, "'");
echo $suffix->set('Hasan Paşa Hanı')->get("de", true, "'");
echo $suffix->set('Protorük')->get("de", true, "'");
echo $suffix->set('Ulu Cami')->get("de", false, "'");
qplot
894 gün önce

aslında kullanıcı adı soyadı ile alakası yok
face deki gibi ahmet şuan prototürk'de gibi olacak evet sıfırdan yazıcam git ile paylaşırım artık

sync
894 gün önce

Bu daha karışıkmış. Hem özel isim hem bulunma hali. Evet yazmak lazım.

qplot
894 gün önce

Mevzu Bu

sync
894 gün önce

Ongözlü Köprüsünde olması mı gerekiyor Ongözlü Köprü'da bulunma halimi?

qplot
895 gün önce

evet bu güzel lakin "Konum" olunca saçmalıyor olmadı kendım yazıcam

sync
895 gün önce

Merhaba,

https://github.com/cengizhancaliskan/iyelik-eki/blob/master/index.php

şu fonksiyon gayet tutarlı çalışıyor.