PHP ile Sayısal Para Değerinin Okunuşunu Yazdırmak
Blog'a Dön

PHP ile Sayısal Para Değerinin Okunuşunu Yazdırmak

Buğra Şıkel

PHP ile Sayısal Para Değerinin Okunuşunu Yazdırma Fonksiyonu

Merhabalar, bu yazımızda bir para miktarı girildiğinde bunun okunuşunu ya da yazılışı da diyebiliriz, bize çıktı olarak verecek bir php fonksiyonu yazacağız. Türkçe bir şekilde bize sonucu döndürecek. Bir muhasebe yazılımı için ihtiyacım olduğundan internette yaptığım araştırmalarda istediğim gibi çalışan bu tarz bir fonksiyona ulaşamadım. Bu sebeple bir fonksiyon oluşturdum. Fonksiyonumuza örnek girdi olarak 12491409.23 girdisini verdiğimizde bize çıktı olarak OnİkiMilyonDörtYüzDoksanBirBinDörtYüzDokuzTürkLirasıYirmiÜçKuruş bu şekilde dönüş yapmakta.

Sayısal para değerlerinin okunuşunu yazdırma işlemi ya da php sayıyı yazıya çevirme fonksiyonu, PHP programlama dili ile gerçekleştirilebilir. Bu yöntem sayesinde, sayısal değerlerin okunuşunu otomatik olarak oluşturarak, zaman ve emek tasarrufu sağlanır. Eğer siz de PHP ile sayısal para değerlerinin okunuşunu yazdırmak istiyorsanız, doğru adrestesiniz.

Fonksiyonumuz şu şekildedir:

/**
 * @param $number
 * @param string $currency
 * @param string $doit
 * @return string
 */
function moneyToText($number, string $currency = 'TürkLirası', string $doit = 'Kuruş'): string
{

    $maxSupportedNumber = 999999999999.99;
    ($number > $maxSupportedNumber) ? exit("Girmiş olduğunuz sayı desteklenmemektedir.") : "";
    //Sayılarımızın karşılıklarını tanımlıyoruz.
    $numbers = [
        0 => '',
        1 => "Bir",
        2 => "İki",
        3 => "Üç",
        4 => "Dört",
        5 => "Beş",
        6 => "Altı",
        7 => "Yedi",
        8 => "Sekiz",
        9 => "Dokuz",
        10 => "On",
        20 => "Yirmi",
        30 => "Otuz",
        40 => "Kırk",
        50 => "Elli",
        60 => "Altmış",
        70 => "Yetmiş",
        80 => "Seksen",
        90 => "Doksan"
    ];


    $number = number_format($number,2); // Sayımızı formatlıyoruz.
    $coins = explode('.', $number); // formattan sonra . dan parçalıyoruz.
    $money = $coins[0]; // burada ana paramızı alıyoruz
    $coins = last($coins); // burada ise kuruşlu kısmı 
    if ($coins == '00'){ //eğer kuruş 00 gelirse hiç yazdırmıyoruz
        $penny = '';
        $doit = '';
    }else { // 00 gelmezse karşılığında hangi değer geldiğini yazdırıyoruz.
        $coins = str_split($coins);
        foreach ($coins as $key => $s){
            if ($key == 0){
                $coins[0] = $s*10;
            }
        }
        $penny = $numbers[$coins[0]].$numbers[$coins[1]];
    }

    $money = str_replace(',','',$money);
    $expMoney = array_reverse(str_split($money));

    foreach ($expMoney as $key => $m){
        if ($key == 10){
            $new[] = $m*10;
        }elseif ($key == 7){
            $new[] = $m*10;
        }elseif ($key == 4){
            $new[] = $m*10;
        }elseif ($key == 1){
            $new[] = $m*10;
        }else {
            $new[] = $m;
        }
    }

    foreach ($new as $n)
    {
        $text[] = $numbers[$n];
    }
   // burada ise artık ana paranın gerekli karşılıklarını almaya başlıyoruz

    foreach ($text as $key => $t){
        if ($key == 2 && $t != ''){
            $text[2] = $t.'Yüz';
        }elseif ($key == 3){
            if ($t == 'Bir' && count($text)==4){
                $text[3] = 'Bin';
            }else {
                $text[3] = $t.'Bin';
            }
        }elseif ($key == 5){
            if ($t == 'Bir'){
                $text[5] = 'Yüz';
            }else {
                $text[5] = $t.'Yüz';
            }
        }elseif ($key == 6){
            $text[6] = $t.'Milyon';
        }elseif ($key == 8){
            if ($t == 'Bir'){
                $text[8] = 'Yüz';
            }else {
                $text[8] = $t.'Yüz';
            }
        }elseif ($key == 9){
            $text[9] = $t.'Milyar';
        }elseif ($key == 11){
            if ($t == 'Bir'){
                $text[11] = 'Yüz';
            }else {
                $text[11] = $t.'Yüz';
            }
        }
    }
    //başlangıçta çevirdiğimiz diziyi tekrar eski haline getiriyoruz ve birleştiriyoruz.
    $text = implode('',array_reverse($text));
    //dönüş için gerekli eklemeleri yapıyoruz.
    return $text.$currency.$penny.$doit;
}

Bu fonksiyon 999,999,999,999.99 sayısına kadar çalışmaktadır. Yani Trilyon cinsinden bir parayı çeviremez, gerekli bir kaç değişiklikle trilyon ve çok daha fazlasını değiştirmemizi sağlayacak hale getirilebilir.

 

Bu ve benzeri önemli ipuçlarını öğrenmek için diğer yazılarıma da göz atabilirsiniz.

Web sitesine mi ihtiyacınız var ?

Bunları da beğenebilirsiniz

WebAssembly ile Tarayıcıda Yüksek Performans: Rust ve Go ile Güçlü Entegrasyon ve Uygulamalar
26 Ocak 2026

WebAssembly ile Tarayıcıda Yüksek Performans: Rust ve Go ile Güçlü Entegrasyon ve Uygulamalar

WebAssembly (Wasm) ile web uygulamalarınızda eşsiz bir performans artışı sağlayın. Bu rehberde, Rust ve Go dillerini kullanarak tarayıcıda yüksek performanslı işlemler geliştirmenin yollarını ve gerçek dünya kullanım senaryolarını keşfedin.

Devamını Oku
Konsol Portfolyo Tasarımım Yayında
24 Ekim 2022

Konsol Portfolyo Tasarımım Yayında

Merhabalar, bu yazımda sizlere mevcut olarak kullandığım portfolyo tasarımımın alternatifi olarak bir de konsol tasarımını tamamladığımı duyurmak istiyorum. Yeni tasarlamış olduğum bu konsol portfolyoda belirli…

Devamını Oku
Yüksek Trafikli Sistemlerde Cache Stampede ve Thundering Herd Koruması: İleri Düzey Stratejiler
23 Nisan 2026

Yüksek Trafikli Sistemlerde Cache Stampede ve Thundering Herd Koruması: İleri Düzey Stratejiler

Yüksek trafikli web uygulamalarında sistem çöküşlerini önlemek için AI tabanlı dinamik kilitleme ve probabilistik yazma yöntemlerini kullanarak ölçeklenebilirliği nasıl artıracağınızı keşfedin.

Devamını Oku
AI Asistan