Ana içeriğe atla

Sayıları Yazıya Çeviren fonksiyon

Yazıyla sayı fonksiyonunu kullanım amacı parametre olarak vereceğimiz integer veya string tipindeki sadece sayıyı metin olarak çıktılar. Kod php dilinde yazılmıştır.

Örnek:
Girdi : '1111' veya 1111
Çıktı : 'BinYüzOnBir'



function yaziylasayi($sayi) {
$o = array(
'birlik' => array('Bir', 'İki', 'Üç', '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')
);

// Sayıyı üçer üçer basamaklarına ayırıyoruz
$basamak = array_reverse(str_split(implode('', array_reverse(str_split($sayi))), 3));

// Ayrılmış basamak sayısını buluyoruz
$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 $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
// ve basamak sayısı 2'e eşitse ve birinci basamak O'a ikinci basamak 0'a üçüncü basamakta 1 eşitse
// ikinci durum "Bir Bin" ifadesi "Bin" şeklinde yazılmasını sağlar
if($b[2] > 0 && !($basamak_sayisi == 2 && $b[0] == 0 && $b[1] == 0 && $b[2] == 1))
// 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);
}




Kullanım:
echo yaziylasayi(1111);
veya
echo yaziylasayi('1111');

Yorumlar

Bu blogdaki popüler yayınlar

Opencart 2.3+ Sipariş Geçmişi API hatası.

Eğer opencart'ta siparişleri düzenlerken "Uyarı : API erişim iznine sahip değilsiniz!" şeklinde bir uyarı alıyorsanız internette pek elle tutulur bilgi bulamayabilirsiniz.

Bu hatanın asıl sebebi opencart'ın siparişe geçmiş ekleme işini site üzerinde bile API arayüzünü kullanmaya kalkması. Anlamayan arkadaşlar için kulağını ters elinle tutmak gibi bir şey.

Halbuki kodların içerisinde eski usul düzenlenebileceği kodlar duruyor. Kendilerine iş aradıkları için olsa gerek.

Geçiçi çözüm istiyorsanız sürekli "Ayarlar > Kullanıcılar > API" den Default hesabına ikinci sekmede "Ip Adresleri" içeriğine değişen IP adresini sürekli girmek gerekiyor.

En kolay çözüm.
https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=28323
yukarıdaki linkte bulunan extension'u siteye kurduğunuzda siz ip adresiniz değiştikçe kendisi otomatik eklenecek.

Nasıl kurulacağını bilmiyorsanız. Araştırmaya devam. ...

Nasıl iyi bir yazılımcı olunur?

Bu soruyu kendime yakın zamanda sormaya başladım. Tabi bu sorunun öncesinde başka sorular vardı. Acaba ben yazılımcılığa mı devam etmeliydim. Yoksa başka bir mesleğe mi yönelmeliydim.

Bu sorulara cevaplarını buldum. Ne olursam olayım ama en iyisini olayım düsturu ile "iyi bir yazılımcı nasıl olunur?" sorusunu kendime sormaya başladım.

Ben okuma eylemine çok uzak değilim. Kitap okumayı severim ve sık sık okurum. Zaten php'yi öğrenme sürecimde kitapların önemi yüksektir.

Kitapcıya yazılım konusunda kitap almaya girdiğimde "Yazılım Mühendisliği" isminde bir kitap gözüme ilişti. Kitabı satın aldım ve ağır ağır okuyorum. Biraz kalıncana bir kitap. Aslında türkçe kaynaklar çoğalıyor olmasına rağmen ingilizce kaynakların hem sayısı hem de güncelliklerinin daha fazla olduğunu düşünmekteyim.

Yine iyi bir yazılımcı olma yolunda ingilizce okur yazarı olunması gerekiyor. İngilizce olarak yapılan videolu anlatımları, podcastleri anlayacak kadar bir ingilizce, iyi bir yazılımcı…

Laravel 5.2 validation hata mesajları çalışmıyor.

Laravel'de yeniyim ve ilk sorunumla karşılaştım vatana millete hayırlı olsun. Sorunun sebebini bulamasam da çözümünü buldum. Sorundan bahsedeyim.

Basit bir formum var ve formda post ettiğim verilerin doldurulması zorunlu kontrolü yaptırıyorum.

Kontrol yapıyor fakat otomatik oluşan hata mesajını ekrana basmıyor.

Çalıştığım örnekte view üzerinden erişebildiğim global bir değişkende bulunan hata mesajı ekrana basmıyor. route tanımlamalarında 'web' middleware ile çalışmam gerekiyordu. Hatanın sebebi olarak bu middleware da çalışmam oldu. Sistem zaten varsayılan tüm route tanımlamalarında web middleware ile çalışıyormuş. Bende extradan tanımlayınca çiftlendi. route üzerinde web middleware'ı kaldırınca durum düzeldi. Hatayı çözümünü bulduğum link aşağıda.

https://laracasts.com/discuss/channels/general-discussion/witherrors-not-working