Tweet

Php İle Sayısal Parayı Yazıya Dönüştürelim

uploads/20110627-151815-1.jpg Geçenlerde php ile makbuz yazdırmam gereken bir proje yapmam gerekiyordu. Bizde nasıl yapalım diye düşünürken pdf nin en mantıklı çözüm olacağı aklımıza geldi. Herşey buraya kadar güzeldi. Makbuza bir göz atayım dedim ve gördüm ki makbuzdaki miktar aynı zamanda yazı ilede yazılıyor. Örneğin İkiBinÜçYüzElliLiraOnBeşKrş gibi. Önce nasıl yaparım diye biraz telaşlandım. 10 dakika düşündükten sonra bir fonksiyon yazayım insanlık namına diye karar verdim. Sonunda gördümki telaşlanmaya pek gerek yokmuş. Ben zaten bir fonksiyon yazmışken yazılımcı arkadaşlar neden bir daha uğraşsın diyerek sitede paylaşayım dedim. [...]

İşte fonksiyon:

CODE:
function money_tr_string($money,$input_format=0){
$arr1 = array("","Bir","İki","Üç","Dört","Beş","Altı","Yedi","Sekiz","Dokuz");
$arr10 = array("","On","Yirmi","Otuz","Kırk","Elli","Atmış","Yetmiş","Seksen","Doksan");
$arr100 = array("","Yüz","İkiYüz","ÜçYüz","DörtYüz","BeşYüz","AltıYüz","YediYüz","SekizYüz","DokuzYüz");
$add_word = array("","Bin","Milyon","Milyar","Trilyon","Katrilyon","Kentilyon","Seksilyon","Septilyon","Oktilyon");

if($input_format==0){ //10000.25
$money=number_format($money,2,',','.');
}
else if($input_format==1){ //10,000.25
$money=str_replace(',','',$money);
$money=number_format($money,2,',','.');
}
else if($input_format==2){ //10000,25
$money=str_replace(',','.',$money);
$money=number_format($money,2,',','.');
}
else if ($input_format==3){//10.000,25
$money=$money;
}
$money_part1=explode(",",$money);
$money_part2=explode(".",$money_part1[0]);

$output='';
$trees_len=count($money_part2);
$addword_start=$trees_len-1;
for($i=0;$i<$trees_len;$i++){
if(strlen($money_part2[$i]*1)==3){
$output.=$arr100[substr($money_part2[$i],0,1)].$arr10[substr($money_part2[$i],1,1)].$arr1[substr($money_part2[$i],2,1)];
}
else if(strlen($money_part2[$i]*1)==2){
$output.=$arr10[substr($money_part2[$i]*1,0,1)].$arr1[substr($money_part2[$i]*1,1,1)];
}
else if(strlen($money_part2[$i]*1)==1){
if(!($addword_start==1 and $money_part2[$i]*1==1)){
$output.=$arr1[substr($money_part2[$i]*1,0,1)];
}
}
if(($money_part2[$i]*1)>0){
$output.=$add_word[$addword_start];
}
$addword_start=$addword_start-1;
}
if(substr($money_part1[1],0,1)==0 and substr($money_part1[1],1,1)==0){
$output.='Lira';
}
else {
$output.='Lira'.$arr10[substr($money_part1[1],0,1)].$arr1[substr($money_part1[1],1,1)].'Krş';
}
return $output;
}
//Kullanmak için

echo money_tr_string('15854.25',0);


Ben testlerimde bir hata bulamadım bir problemle karşılaşırsanız lütfen yorum bırakın.

Kolay gelsin.
Dia
okanatabag@gmail.com
9 Mayis 2011 23:45

Yorumlar (0)




Ziyaretçi olarak yorum yazamazsınız . Üye olmak için tıklayın Üye iseniz giriş yapın.


Desteklediklerimiz

Teknoloji


MENÜ » FORUM
Menü » Takip et
RSS Facebook Twitter Friendfeed
Sık Kullanılanlar Google Yahoo Live
Menü » Paylaş
E-Posta ile gönder Twitter Facebook Friendfeed
Buzz Stumbleupon Delicious Digg