İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Cümleyi/Kelimeyi hecelerine bölmek

atay

0
İyinet Üyesi
Katılım
29 Ekim 2005
Mesajlar
3,592
Reaction score
37
PHP:
<?php 
/* hececi 
** Bir Metni Türkçe Hece Kurallarına Göre Hecelerine Ayırır.  
*/ 

class hececi{     
    var $kelimeDizisi = array();     
    var $heceDizisi = array();         
    var $sesliler = array('a','e','ı','i','o','u','ö','ü','A','E','I','İ','O','Ö','U','Ü');     
     
    function hececi() 
    {     
    }     
     
    function hecelereAyir($text){         
        $a=explode(" ",$text);                 
        foreach($a as $i=>$k){             
            $this->kelimeDizisi[] = trim($k);             
        }         
             
        foreach($this->kelimeDizisi as $i=>$kelime){            
            $this->_hecele($kelime,$i);         
        }     
    }     
     
    function heceliYazdir(){         
        $sonuc ="";         
        foreach($this->heceDizisi as $i=>$kd){             
            $kachece = count($kd);             
            $kelime="";             
            for($x = $kachece-1; $x>=0; $x--){                 
                $kelime .= $kd[$x]."-";             
            }             
            $sonuc .= substr($kelime,0,-1)." ";         
        }         
        return $sonuc;     
    }     
     
    function _hecele($sozcuk,$sira){         
        /*sözcükte hiç sesli yoksa ya da sözcükte hiçbisey yoksa son olusturulan heceye ekle ve islemi durdur.*/ 
        if(!$this->_sesliVarmi($sozcuk)){             
            if(isset($this->heceDizisi[$sira]) && ($sayi=count($this->heceDizisi[$sira]))>0)                 
                $this->heceDizisi[$sira][$sayi-1] = $sozcuk.$this->heceDizisi[$sira][$sayi-1]; 
            else                 
                $this->heceDizisi[$sira] [0] = $sozcuk;             
                return;         
            }         
            $enSagdakiSesliKonumu = $this->_enSagdakiniBul($sozcuk,$this->sesliler);/** en sagdaki sesli harfin solundaki harf sesli ise o zaman bu en sagdaki sesliden heceyi ayir */         
             
            if( $enSagdakiSesliKonumu == 0 || $this->_seslimi($sozcuk{$enSagdakiSesliKonumu-1})){             
                $hece = substr($sozcuk,$enSagdakiSesliKonumu);         
            }         
            /** en sagdaki seslinin solundaki harf sessiz ise o zaman heceyi bu sessizden ayir*/         
            else{             
                $hece = substr($sozcuk,$enSagdakiSesliKonumu-1);         
            }         
             
            $k = strlen($hece);         
            $yeniSozcuk = substr($sozcuk,0,-$k);         
            $this->heceDizisi[$sira][] = $hece;         
            /** olusan heceyi attiktan sonra kalan kelimeyle basa dön*/         
            return $this->_hecele($yeniSozcuk,$sira);     
        }     
         
        function _enSagdakiniBul($kelime,$arananlar){         
            $u = strlen($kelime);         
            for($i=$u-1;$i>=0;$i--){             
                if(in_array($kelime{$i},$arananlar))                 
                return $i;         
                }         
                return lisanssız;     
            }     
            function _seslimi($harf){       
                return in_array($harf,$this->sesliler);     
            }    
             
            function _sesliVarmi($kelime){         
                $u=strlen($kelime);         
                for($i=0;$i<$u;$i++){             
                    if($this->_seslimi($kelime{$i}))                 
                        return true;         
                    }         
                    return false;     
                } 
            } 

//KULLANIMI :                                                         
$metin = "PHP İçin En Yararlı Türkçe Kaynak"; 
$h = new hececi(); 
$h->hecelereAyir($metin); 
echo $h->heceliYazdir(); 
?>

Önceden bilgisayarıma kaydetmişim, kimin yazdığını bilmiyorum bu yüzden belirtemeyeceğim. Alıntıdır.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst