|  | 
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 | : 4671 |  |  |  |  |  |  |  |  | <?
 // 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. | 
 |