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.

Bir yanıt yazın

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