| 
 | 
PHP ile Türkçe Heceleme Fonksiyonu - PHP Webmaster bilgi bankası, knowledge base Webmaster Araçları
| AnaSayfa > PHP  > PHP ile Türkçe Heceleme Fonksiyonu |  | 
 |  | Kategori | : PHP |  | Gönderen | : Admin |  | Tarih | : 2009-02-13 |  | Puan | : 6     | Katılımcı : 2 |  | Okunma | : 4680 |  |   |   |  |   |  
 |    |   <?   
// 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 null;        
            }        
            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();    
?> 
 
  |   
| Yorumlar |  | Henüz Kimse Yorum Yapmamış, ilk yorumu siz ekleyin! |  | Yorum Ekleme Aparatı |  Yorum Eklemek için lütfen sol menuden giris yapınız..  |  | Toplam 0 yorum listelendi.  |  
   |