Rakamı Yazıya Çevirme Sınıfı ile Sayıların Türkçe Okunuşu

<?php 
$bir = array("","bir ","iki ","üç ","dört ","beş ","altı ","yedi ","sekiz ","dokuz ");
$on = array("","on ","yirmi ","otuz ","kırk ","elli ","atmış ","yetmiş ","seksen ","doksan ");
$ek = array("", "yüz ","bin ","milyon ","milyar ","trilyon ","katrilyon ","kentilyon ","seksilyon ","septilyon ","oktilyon ");
function uclu($rakam){//sayıyı 3lü hane olarak okutuyoruz
 global $bir,$on,$ek;
 if(strlen($rakam)==1){ return $bir[substr($rakam,0,1)];}
 if(strlen($rakam)==2){ return $on[substr($rakam,0,1)]." ".$bir[substr($rakam,1,1)];}
 if(strlen($rakam)==3){ 
 if(substr($rakam,0,1) > 0){//yüzler hanesinde 0
 if(substr($rakam,0,1) == 1){//yüzler hanesinde 1 problemi
 $yuzler=$ek[1];
 }else{
 $yuzler=$bir[substr($rakam,0,1)].$ek[1];
 }
 }else{
 $yuzler=$bir[substr($rakam,0,1)];
 }
 return $yuzler." ".$on[substr($rakam,1,1)]." ".$bir[substr($rakam,2,1)];
 }
}
function okut($n){
 global $bir,$on,$ek;
 $ns=explode(',',number_format($n));//3lü diziye ayırdık
 for($i=0;$i<count($ns);$i++){//3 lü diziyi döndür
 $j=(count($ns)-$i);//3 lü hangi eke ait?
 if($j > 1){//son $j ek içermez engeli
 if($ns[$i] == 1 and $ek[$j] == "bin "){//bir bin bugu için
 echo $ek[$j]." ";
 }else{
 if($ns[$i] != "000"){//1000123 bin eki tarzı bug
 echo uclu($ns[$i])." ".$ek[$j]." ";
 }
 }
 }else{
 echo uclu($ns[$i])." ";
 }
 }
}

echo okut("1000123"); ?>