Konum iyelik eki
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
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, "'");