Linkedin Instagram Facebook Twitter Mail Youtube Whatsapp

PHP Sayıyı Yazıya Çevirme Fonksiyonu

Php Dizileri Ayırma - Array_slice() 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

Bir Yorum Yaz