v2.5.2
Giriş yap

Konum iyelik eki

qplot
697 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

sync
1104 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, "'");