PHP Sayıyı Yazıya Çevirme Fonksiyonu

Daha önce hiç kullanmadım ama sanırım ileride işime yarayacak bir fonksiyon olduğunu düşündüğüm için paylaşmak istedim. Başlıktan da anlaşılacağı gibi php de sayı ile yazılan değeri yazıya çeviriyor. Miktar olarak düşünüldüğünde 2.000 TL’yi “ikibin” TL diye ayırabiliyor.Bu fonksiyonu internette buldum gayet de doğru çalışıyor yapanın eline emeğine sağlık. PHP Sayıyı Yazıya Çevirme Fonksiyonu aşağıda verilmiştir.

<?php 
function read($sayi){ 
$o = array( 
'birlik' => array('bir', 'iki', 'üç', 'dört', 'beş', 'altı', 'yedi', 'sekiz', 'dokuz'), 
'onluk' => array('on', 'yirmi', 'otuz', 'kırk', 'elli', 'altmış', 'yetmiş', 'seksen', 'doksan'), 
'basamak' => array('yüz', 'bin', 'milyon', 'milyar', 'trilyon', 'katrilyon') 
); 
$basamak = array_reverse(str_split(implode('', array_reverse(str_split($sayi))), 3)); 
$basamak_sayisi = count($basamak);
for($i=0; $i < $basamak_sayisi; ++$i){ 
$basamak[$i] = implode(array_reverse(str_split($basamak[$i]))); 
if(strlen($basamak[$i]) == 1) 
$basamak[$i] = '00' . $basamak[$i]; 
elseif(strlen($basamak[$i]) == 2) 
$basamak[$i] = '0' . $basamak[$i]; 
} 
$yenisayi = array();
foreach($basamak as $k => $b){ 
if($b[0] > 0){
$yenisayi[] = ($b[0] > 1 ? $o['birlik'][$b[0]-1] . ' ' : '') . $o['basamak'][0];
}
if($b[1] > 0){ 
$yenisayi[] = $o['onluk'][$b[1]-1];
}
if($b[2] > 0) {
if($b[0]==0 && $b[1]==0){
if($basamak_sayisi>=3){
$yenisayi[] = $o['birlik'][$b[2]-1];
}else if($basamak_sayisi==2){
$yenisayi[] = ($b[2] > 1 ? $o['birlik'][$b[2]-1] . ' ' : ''); 
}else{
$yenisayi[] = ($b[2] >= 1 ? $o['birlik'][$b[2]-1] . ' ' : ''); 
}
}else{
$yenisayi[] = $o['birlik'][$b[2]-1];
}
}
if($basamak_sayisi > 1){
$yenisayi[] = $o['basamak'][$basamak_sayisi-1];
}
--$basamak_sayisi; 
} 
return implode(' ', $yenisayi); 
}

$num = 1234456.23;
$num = explode('.',number_format($num,'.','')); //Gelen sayının kuruş hanesini yukarı veya aşağı yuvarlaması için explode içerisinde number_format kullandık. Farklı bir parametre de kullanılabilir.

$num[0]>0 ? $first = read($num[0]).' Lira' : $first='';
$num[1]>0 ? $second = read($num[1]).' kuruş' : $second='';

echo '<span style="font-size:12px;color:#0077FF;">'.$first.' <i style="color:#ff0000;">'.$second.'</i></span>';
?>

Kaynak : https://wmaraci.com/forum/php-hazir-kodlar/php-sayiyi-yaziya-cevirme-fonksiyonu-9751-2.html

AuthorHarun ALP

Bu adam , bilgi sahibi olduğu konularda makalelerini daha bilgilendirici hale getirip görseller ile süslüyor ve seo uyumlu makaleler ortaya çıkarıyor. Güncel webmaster konularını işlemekten keyif alıyor ve genelde her makale aslında bir sorunun çözümü niteliğinde.

5 thoughts on “PHP Sayıyı Yazıya Çevirme Fonksiyonu

  1. Harun bey örneğin ilk kutuya arial olarak yazılacak metni alt kutuda times roman olarak göstermek ve bunu resim olarak kaydedebilmesini istiyorum ziyaretçinin. Nasıl olacak

    • İlk kutudaki değeri ikinci kutuda farklı bir style özelliği göstermek için javascript kullanmanız gerekecek. Ardından PHP de ImageCreate() , ImageColorAllocate() ,ImageString(), ImageJpeg() , ImageGif(), ImageDestroy() gibi bu tarz fonksiyonları kullanarak istediğiniz resim olarak kaydettirme işlemini yapabilirsiniz. Php dokümanlarında ilgili bilgiler mevcuttur.Yakında bununla ilgili bir makale de hazırlayabilirim.

  2. hocam selamlar
    echo $total[‘value’]; ile rakamsal tutar gösterdiğim kodu sizin kodunuza nasıl entegre edebilirim..
    teşekkürler

    get_price_totals() as $key => $total ) : ?>
    <tr class="”>

  3. hocam selamlar
    echo $total[‘value’]; ile rakamsal tutar gösterdiğim kodu sizin kodunuza nasıl entegre edebilirim..
    teşekkürler

    • Size Gmail den cevap yazdım yorum için teşekkürler.

Yazar için bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir