PHP’de Rakamları Okuma

<?PHP
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);
?>

Be the first to comment

Leave a Reply

Your email address will not be published.


*