Avukat Listesi, Avukat Ara, Avukat Sorgula

Türkiyedeki tüm avukatların, adres, telefon ve iletişim bilgilerini (izin verilmesi halinde) görebileceğiz, İstanbul barosu, Ankara barosu, İzmir barosu, Muğla barosu gibi barolara ait avukatların listelerini bulabileceğiz, arabulucu listesine ulaşabilmek için https://avukatbilgisi.com adresini ziyaret edebilirsiniz. avukatbilgisi.com   Adana Barosu Avukat Listesi   avukatbilgisi.com   Ankara Barosu Avukat Listesi - Ankara Barosu Avukatları   Antalya Barosu Avukat Listesi   Avukat Bilgisi   Aydın Barosu Avukatları   Balıkesir Avukatları   Bursa Avukatları   Eskişehir Avukat Listesi   İstanbul Barosu Avukat Listesi   Gaziantep Avukat Listesi   Avukat Listesi   Avukat Bilgisi   Muğla Barosu Avukatları   Manisa Barosu Avukatları   avukatbilgisi.com   avukatbilgisi.com avukatbilgisi.com avukatbilgisi.com avukatbilgisi.com avukatbilgisi.com avukatbilgisi.com avukatbilgisi.com avukatbil

Php de rakamı yazıya çevirme fonksiyonu

OpenCart sisteminde makbuz bilgisine tutarı yazı ile yazdırmam gerekiyordu. Araştırma yaparken bu kodu buldum ve istediğim şekilde çalıştı. Başka arayanlara yardımcı olur belki...
NOT: Tamamen alıntıdır.
[php]
<?php
class yaziyla {
var $sayi=0;
var $kurus=0;
var $eksi="";
var $birim="TL";
var $kurus_birim = "KR";
var $bolukler;
var $birler;
var $onlar;
function yaziyla($birim="TL", $kurus_birim="KR") {
$this->birim = $birim;
$this->kurus_birim = $kurus_birim;
$this->bolukler = array("","BİN","Milyon","Milyar","Trilyon","Katrilyon","Trilyar","Kentrilyon","Kentrilyar","Zontrilyar");
$this->birler = array("SIFIR","BİR","İKİ","ÜÇ","DÖRT","BEŞ","ALTI","YEDİ","SEKİZ","DOKUZ");
$this->onlar = array("","ON","YİRMİ","OTUZ","KIRK","ELLİ","ALTMIŞ","YETMİŞ","SEKSEN","DOKSAN","YÜZ");
}
function yaz($sayi) {
$tam="";
$kurus="";
if($this->sayi_cozumle($sayi)) {
//return "Hatalı Sayı Formatı!";
return "";
}
if(($this->sayi+$this->kurus) == 0) return $this->birler[0].' '.$this->birim;
if($this->sayi>0) $tam = $this->oku($this->sayi);
if($this->kurus>0) $kurus = $this->oku($this->kurus);
if( $this->sayi == 0 ) return $this->eksi.' '.$kurus.' '.$this->kurus_birim;
if( $this->kurus == 0 ) return $this->eksi.' '.$tam.' '.$this->birim;
return $this->eksi.' '.$tam.' '.$this->birim.' '.$kurus.' '.$this->kurus_birim;
}
function oku($sayi) {
if($sayi == 0) return $this->birler[0];
$ubb = sizeof($this->bolukler);
$kac_sifir = 3 - (strlen($sayi) % 3);
if($kac_sifir!=3) for($i=0;$i<$kac_sifir;++$i) { $sayi = "0$sayi"; }
$k = 0; $sonuc = "";
for($i = strlen($sayi); $i>0; $i-=3,++$k) {
$boluk = $this->boluk_oku(substr($sayi, $i-3, 3));
if($boluk) {
if(($k == 1) && ($boluk == $this->birler[1])) $boluk = "";
if( $k > $ubb) $sonuc = $boluk ."Tanımsız(".($k*3).".Basamak) $sonuc";
else $sonuc = $boluk . $this->bolukler[$k]." $sonuc";
}
}
return $sonuc;
}
function boluk_oku($sayi) {
$sayi = ((int)($sayi)) % 1000; $sonuc = "";
$bir = $sayi % 10;
$on_ = (int)($sayi / 10) % 10;
$yuz = (int)($sayi / 100) % 10;
if($yuz) { if($yuz == 1) $sonuc = $this->onlar[10];
else $sonuc = $this->birler[$yuz].$this->onlar[10]; }
if($on_) $sonuc = $sonuc.$this->onlar[$on_];
if($bir) $sonuc = $sonuc.$this->birler[$bir];
return $sonuc;
}
function sayi_cozumle($sayi) {
$sayi = trim($sayi);
if($sayi[0] == "-") { $this->eksi="Eksi"; $sayi = substr($sayi, 1); }
if(preg_match("/^(0*\.0+|0*|\.0+)$/", $sayi)) { $this->sayi = $this->kurus = 0; return 0; }
if(preg_match("/^(\d+)\.(\d+)$/", $sayi, $m))
{
$sayi = $m[1]; $this->sayi = (int)preg_replace("/^0+/","",$sayi);
if(!preg_match("/^0+$/",$m[2])) $this->kurus = (int)$m[2];
}
else if(preg_match("/^0*(\d+)$/", $sayi, $m) || preg_match("/^0*(\d+)\.0+$/", $sayi, $m)) { $this->sayi = (int)$m[1]; }
else if(preg_match("/^0*\.(\d+)$/", $sayi, $m)) { $this->sayi = 0; $this->kurus = (int)$m[1]; }
else return 1;
if($this->kurus>0) {
$this->kurus= number_format('0.'.$this->kurus, 2);
if( (int)$this->kurus == 1 ) { ++$this->sayi; $this->kurus = 0; }
else $this->kurus = (int)str_replace("0.", "", $this->kurus);
}
return 0;
}
}
$yaziyla = new yaziyla("TÜRK LİRASI", "KURUŞ");
//Yazdırma işlemi
echo $yaziyla->yaz(256.30);
//ÇIKTISI : İKİYÜZELLİALTI TÜRK LİRASI OTUZ KURUŞ
?>
[/php]
Bu fonksiyonu kullanırken, şöyle bir sıkıntı ile karşılaştım. Benim para formatım 1,256.3000 olarak geliyordu. Bu şekilde yazıya çevirmeye çalıştığımda, çevirme işlemini yapmıyordu. Onu da şu şekilde çözümledim.
Fonksiyonu yazdırırken "number_format" fonksiyonu ile gelen para formatını, fonksiyona uygun şekle çevirdim.
Şöyle ki ;
[php]
$toplam_fiyat = 1,256.3000
echo $yaziyla->yaz(number_format($toplam_fiyat,2,'.',''));
//ÇIKTISI : BİN İKİYÜZELLİALTI TÜRK LİRASI OTUZ KURUŞ
[/php]
Sizinde para formatınız farklı ise, number_format() fonksiyonu ile istediğiniz formata çevirebilirsiniz. number_format() fonksiyonu için detaylı bilgiye buradan ulaşabilirsiniz.

Bir başka fonksiyon olarak şuradaki kodu kullanabilirsiniz.

Yorumlar

Bu blogdaki popüler yayınlar

Avukat Listesi, Avukat Ara, Avukat Sorgula

Php ile tarihe 1 gün ekleme ya da çıkartma

DataTable da buton isimlerini Türkçe yapmak