<?
function tamsayioku($n) {
if (!(int)$n) return '';
$basamak = array (
array("", "Bir", "İki", "Üç", "Dört", "Beş", "Altı", "Yedi", "Sekiz", "Dokuz"),
array("", "On", "Yirmi", "Otuz", "Kırk", "Elli", "Altmış", "Yetmiş", "Seksen", "Doksan"),
array("", "Yüz", "İkiyüz", "Üçyüz", "Dörtyüz", "Beşyüz", "Altıyüz", "Yediyüz", "Sekizyüz", "Dokuzyüz")
);
$ucler = array("", "Bin", "Milyon", "Milyar", "Trilyon","Katrilyon","Katrilyar","ve dahasi");
// 0034 deki 00 lari yazdir.virgulden sonraki kisimlarda gerekli.
for ($sifir=''; substr($n,0,1)=='0'; $sifir.='Sıfır') $n = substr($n,1);
// ters cevir.
$str = strrev($n);
// tam sayiyi okuyalim
$oku = '';
for ($i=0,$d=0;$i<strlen($str);$i++,$d++) {
if ($d%3==0) $oku = $ucler[$d/3].$oku;// uc basamak gectik.bin,milyon vs yaz.
$oku = $basamak[$d%3][$str[$i]].$oku;
}
if (substr($oku,0,6)=='BirBin') $oku = substr($oku,3);// birbin hadisesi varsa sil.
return $sifir.$oku;
}
//ONDALIK veya TAM sayilari okur.
function sayioku($n='') {
//if ($n==0) {print 'Sıfır'; return;} // sıfırı okutmak için.
$bol = explode('.',$n);// ondaligin sagini solunu ayir.
$sag = tamsayioku($bol[0]);//tam sayi kismi
$sol = tamsayioku($bol[1]);//ondalik kismi
$virgul = ($sol) ? 'Virgül' : ''; // ondalik kisim varsa araya virgul koyacaz.
if (!$sag&&$sol) $sag = 'Sıfır';// ondalik var ama tam sayi yoksa. sifir virgul ....
print $sag.$virgul.$sol;
}
sayioku(00.010200);
print '<br>';
sayioku(0123456789.9876543210);
### by ufuk<finitor@gmail.com> ####
?>