function yaziylasayi($sayi) {
$o = array(
'birlik' => array('BİR', 'İKİ', 'ÜÇ', 'DÖRT', 'BEŞ', 'ALTI', 'YEDİ', 'SEKİZ', 'DOKUZ'),
'onluk' => array('ON', 'YİRMİ', 'OTUZ', 'KIRK', 'ELLİ', 'ALTMIŞ', 'YETMİŞ', 'SEKSEN', 'DOKSAN'),
'basamak' => array('YÜZ', 'BİN', 'MİLYON', 'MİLYAR', 'TRİLYON', 'KATRİLYON')
);
// Sayýyý basamaklarýna ayýrýyoruz
$basamak = array_reverse(str_split(implode('', array_reverse(str_split($sayi))), 3));
// Basamak sayýsýný belirliyoruz
$basamak_sayisi = count($basamak);
// Her basamak için:
for ($i=0; $i < $basamak_sayisi; ++$i)
{
// Sayýyý basamaklarýna ayýrdýðýmýzda basamaklar tersine döndüðü için burada ufak bir iþlem ile basamaklarý düzeltiyoruz
$basamak[$i] = implode(array_reverse(str_split($basamak[$i])));
// Eðer basamak 4, 8, 15, 16, 23, 42 gibi 1 veya 2 rakamlýysa baþýna 3 rakama tamamlayacak þekilde "0" ekliyoruz ki foreach döngüsünde problem olmasýn
if (strlen($basamak[$i]) == 1)
$basamak[$i] = '00' . $basamak[$i];
elseif (strlen($basamak[$i]) == 2)
$basamak[$i] = '0' . $basamak[$i];
}
$yenisayi = array();
// Her basamak için: ($yenisayi deðiþkenine)
foreach ($basamak as $k => $b)
{
// basamaðýn ilk rakamý 0'dan büyük ise
if ($b[0] > 0)
// deðiþkene rakamýn harfle yazýlýþý ve "yüz" ekliyoruz
$yenisayi[] = ($b[0] > 1 ? $o['birlik'][$b[0]-1] . ' ' : '') . $o['basamak'][0];
// basamaðýn 2. rakamý 0'dan büyük ise
if ($b[1] > 0)
// deðiþkene rakamýn harfle yazýlýþýný ekliyoruz
$yenisayi[] = $o['onluk'][$b[1]-1];
// basamaðýn 3. rakamý 0'dan büyük ise
if ($b[2] > 0)
// deðiþkene rakamýn harfle yazýlýþýný ekliyoruz
$yenisayi[] = $o['birlik'][$b[2]-1];
// deðiþkene basamaðýn ismini (bin, milyon, milyar) ekliyoruz
if ($basamak_sayisi > 1)
$yenisayi[] = $o['basamak'][$basamak_sayisi-1];
// Basamak sayýsýný azaltýyoruz ki her basamaðýn sonuna ilkinde ne yazýyorsa o yazýlmasýn
--$basamak_sayisi;
}
return implode(' ', $yenisayi);
} Fiyat Yazı ile
2
●300
- 30-11-2015, 22:25:26normalde çalışıyor ama kusuratlı rakamlar oldugu takdirde kusuratları vermiyor sizce ne yapabilirim?
- 01-12-2015, 03:03:41daha öncesinde benzer birşey yapmıştım ama hangi projede yaptığımı bulamadım ama alttaki iki kaynak belki işinize yarayabilir.
http://stackoverflow.com/questions/2...-a-word-in-php
http://www.karlrixon.co.uk/writing/c...ords-with-php/