PHP Dili ile, sayı yazıya nasıl çevrilir?
Profesyonel iş hayatında özellikle de faturaların alt tarafında sık rastladığımız bir durum olan sayıyı yazıya çevirme olayına bu yazımızda değindik. Daha önce C# programlama dili ile 8 haneli bir sayı, yazıya çevrilmişti. Şimdi PHP ile 9 haneye kadar, yani yüzmilyon mertebesindeki bir sayıyı, yazıya çevireceğiz. PHP ile C# dilleri temelde C tabanlı (C'den esinlenen) diller olduğu için yazım şekilleri birbirine benzemektedir.
Örneğin Klavyeden girilen 7 haneli (örneğin 1.567.293) bir sayıyı, yazılı şekilde (örneğin bir milyon beş yüz altmış yedi bin iki yüz doksan üç) şeklinde yazmaktadır. Sayıyı giren kişi bazı haneler sıfır da girebilir. Örneğin: 07, 089, 0911, 07873, 089876, 0674123 gibi girebilir, bu durumda baştaki sıfır atılarak sayının yazılı ifadesi yazdırılmaktadır.

İşlemi bir fonksiyon haline çevirdik, $a değişkenine sayımızı atıyoruz ve sonra yaziYacevir fonksiyonuna gönderiyoruz.
$a="912505671";
Örneğin Klavyeden girilen 7 haneli (örneğin 1.567.293) bir sayıyı, yazılı şekilde (örneğin bir milyon beş yüz altmış yedi bin iki yüz doksan üç) şeklinde yazmaktadır. Sayıyı giren kişi bazı haneler sıfır da girebilir. Örneğin: 07, 089, 0911, 07873, 089876, 0674123 gibi girebilir, bu durumda baştaki sıfır atılarak sayının yazılı ifadesi yazdırılmaktadır.

İşlemi bir fonksiyon haline çevirdik, $a değişkenine sayımızı atıyoruz ve sonra yaziYacevir fonksiyonuna gönderiyoruz.
$a="912505671";
echo $a."<br>";
echo yaziyaCevir($a);
Yukarıdaki örnek kullanımda sayı dokuz hane olarak verilmiştir, başka sayılar yazarak fonksiyonun verdiği cevabı değerlendirebilirsiniz.
function yaziyaCevir($a){
//Aşağıdaki fonksiyonda bir sayı okunurken kullanılan ifadeler dikkate alınarak,
// rakamların 0 ile 9 arasında olması durumunda nasıl ifade edileceği
//gösterilmiştir. switch case yerine if else de kullanarak aynı işlemleri yapabilirdik.
function birlerBul($birlerBasamagi)
{
$deger="";
switch ($birlerBasamagi) {
case "0": $deger = "sıfır"; break;
case "1": $deger = "bir"; break;
case "2": $deger = "iki"; break;
case "3": $deger = "üç"; break;
case "4": $deger = "dört"; break;
case "5": $deger = "beş"; break;
case "6": $deger = "altı"; break;
case "7": $deger = "yedi"; break;
case "8": $deger = "sekiz"; break;
case "9": $deger = "dokuz"; break;
default:return $deger;
}
return $deger;
}
//Aşağıdaki fonksiyonda ise yine sayının okunuşu düşünülerek yazılmıştır.
function onlarBul($onlarBasamagi)
{
$deger="";
switch ($onlarBasamagi)
{
case "1": $deger = "on"; break;
case "2": $deger = "yirmi"; break;
case "3": $deger = "otuz"; break;
case "4": $deger = "kırk"; break;
case "5": $deger = "elli"; break;
case "6": $deger = "altmış"; break;
case "7": $deger = "yetmiş"; break;
case "8": $deger = "seksen"; break;
case "9": $deger = "doksan"; break;
}
return $deger;
}
$sayi=""; $onluk=""; $birlik=""; $yuzluk=""; $binlik="";
$onbinlik="";$yuzbinlik=""; $milyon=""; $milyar="";
$basamaksay = 0;
$basamaksay = strlen($a);
if ($basamaksay == 1) {
$sayi= birlerBul($a);
}
// basamak sayısı 2 ise,
// burada kullanılan substr($a, 0 ,1) ifadesi $a metninin ilk karekterinden
// bir tane al demektir, sayı 12 ise burada 1 alınacaktır. Numaralandırma
// dikkat ederseniz sıfırdan başlamaktadır.
if ($basamaksay == 2)
{
$onluk = substr($a,0,1);
$birlik = substr($a,1,1);
$sayi= onlarBul($onluk);
if ($birlik!="0")
$sayi.=birlerBul($birlik);
}
// basamak sayısı 3 ise
// Sayımız üç basamaklı ise birler, onlar ve yüzler basamağını ayrıştırıp,
// buna göre ilgili fonksiyonları çağırıyoruz. Bundan sonraki işlemler
// hep aynı şekilde benzer mantıkla tekrarlanıyor. 011, 0234 gibi
// sayının önünde sıfır varsa hesaba katmıyoruz.
// basamak sayısı 3 ise
// Sayımız üç basamaklı ise birler, onlar ve yüzler basamağını ayrıştırıp,
// buna göre ilgili fonksiyonları çağırıyoruz. Bundan sonraki işlemler
// hep aynı şekilde benzer mantıkla tekrarlanıyor. 011, 0234 gibi
// sayının önünde sıfır varsa hesaba katmıyoruz.
if ($basamaksay == 3)
{
$yuzluk = substr($a,0,1);
$onluk = substr($a,1, 1);
$birlik = substr($a, 2, 1);
if ($yuzluk!="1" && $yuzluk!="0")
$sayi= birlerBul($yuzluk)."yüz";
if ($yuzluk == "1")
$sayi = "yüz";
if ($onluk != "0")
$sayi .= onlarBul($onluk);
if ($birlik != "0")
$sayi .= birlerBul($birlik);
}
// basamak sayısı 4 ise
// basamak sayısı 4 ise
if ($basamaksay == 4)
{
$binlik = substr($a,0, 1);
$yuzluk = substr($a,1, 1);
$onluk = substr($a,2, 1);
$birlik = substr($a,3, 1);
if ($binlik != "1")
$sayi = birlerBul($binlik)."bin";
if ($binlik == "1")
$sayi = "bin";
if ($yuzluk != "1" && $yuzluk != "0")
$sayi .= birlerBul($yuzluk) . "yüz";
else if ($yuzluk == "1")
$sayi .= "yüz";
else if ($yuzluk == "0")
$sayi .= "";
if ($onluk != "0")
$sayi .= onlarBul($onluk);
if ($birlik != "0")
$sayi .= birlerBul($birlik);
}
// basamak sayısı 5 ise
if ($basamaksay == 5)
{
$onbinlik = substr($a,0, 1);
$binlik = substr($a,1, 1);
$yuzluk = substr($a,2, 1);
$onluk = substr($a,3, 1);
$birlik = substr($a,4, 1);
if ($onbinlik != "0")
$sayi = onlarBul($onbinlik);
if ($binlik != "0")
$sayi .= birlerBul($binlik) . "bin";
else $sayi .= "bin";
if ($yuzluk != "1" && $yuzluk!="0")
$sayi .= birlerBul($yuzluk) . "yüz";
else if ($yuzluk == "1")
$sayi .= "yüz";
else if ($yuzluk == "0")
$sayi .= "";
if ($onluk != "0")
$sayi .= onlarBul($onluk);
if ($birlik != "0")
$sayi .= birlerBul($birlik);
}
// basamak sayısı 6 ise
if ($basamaksay == 6)
{
$yuzbinlik= substr($a,0, 1);
$onbinlik = substr($a,1, 1);
$binlik = substr($a,2, 1);
$yuzluk = substr($a,3, 1);
$onluk = substr($a,4, 1);
$birlik = substr($a,5, 1);
if ($yuzbinlik != "0" && $yuzbinlik != "1")
$sayi = birlerBul($yuzbinlik) ."yüz";
else if ($yuzbinlik == "1")
$sayi = "yüz";
else $sayi .= "";
if ($onbinlik != "0")
$sayi .= onlarBul($onbinlik);
if ($binlik != "0")
$sayi .= birlerBul($binlik) . "bin";
else $sayi .= "bin";
if ($yuzluk != "1" && $yuzluk != "0")
$sayi .= birlerBul($yuzluk) . "yüz";
else if ($yuzluk == "1")
$sayi .= "yüz";
else if ($yuzluk == "0")
$sayi .= "";
if ($onluk != "0")
$sayi .= onlarBul($onluk);
if (birlik != "0")
$sayi .= birlerBul($birlik);
}
// basamak sayısı 7 ise
if ($basamaksay == 7)
{
$milyon = substr($a,0, 1);
$yuzbinlik = substr($a,1, 1);
$onbinlik = substr($a,2, 1);
$binlik = substr($a,3, 1);
$yuzluk = substr($a,4, 1);
$onluk = substr($a,5, 1);
$birlik =substr($a,6, 1);
if ($milyon != "0")
$sayi = birlerBul($milyon) . "milyon";
else $sayi = "";
if ($yuzbinlik != "0")
$sayi .= birlerBul($yuzbinlik) ."yüz";
else $sayi .= "";
if ($onbinlik != "0")
$sayi .= onlarBul($onbinlik);
if ($binlik != "0")
$sayi .= birlerBul($binlik) . "bin";
else $sayi .= "bin";
if ($yuzluk != "1" && $yuzluk != "0")
$sayi .= birlerBul($yuzluk) . "yüz";
else if ($yuzluk == "1")
$sayi .= "yüz";
else if ($yuzluk == "0")
$sayi .= "";
if ($onluk != "0")
$sayi .= onlarBul($onluk);
if ($birlik != "0")
$sayi .= birlerBul($birlik);
}
// basamak sayısı 8 ise
if ($basamaksay == 8)
{
$onmilyon=substr($a,0, 1);
$milyon = substr($a,1, 1);
$yuzbinlik = substr($a,2, 1);
$onbinlik = substr($a,3, 1);
$binlik = substr($a,4, 1);
$yuzluk = substr($a,5, 1);
$onluk = substr($a,6, 1);
$birlik =substr($a,7, 1);
if ($onmilyon != "0")
$sayi = onlarBul($onmilyon);
if ($milyon != "0")
$sayi.= birlerBul($milyon) . "milyon";
else $sayi = "";
if ($yuzbinlik != "0")
$sayi .= birlerBul($yuzbinlik) ."yüz";
else $sayi .= "";
if ($onbinlik != "0")
$sayi .= onlarBul($onbinlik);
if ($binlik != "0")
$sayi .= birlerBul($binlik) . "bin";
else $sayi .= "bin";
if ($yuzluk != "1" && $yuzluk != "0")
$sayi .= birlerBul($yuzluk) . "yüz";
else if ($yuzluk == "1")
$sayi .= "yüz";
else if ($yuzluk == "0")
$sayi .= "";
if ($onluk != "0")
$sayi .= onlarBul($onluk);
if ($birlik != "0")
$sayi .= birlerBul($birlik);
}
// basamak sayısı 9 ise
if ($basamaksay == 9)
{
$yuzmilyon=substr($a,0, 1);
$onmilyon=substr($a,1, 1);
$milyon = substr($a,2, 1);
$yuzbinlik = substr($a,3, 1);
$onbinlik = substr($a,4, 1);
$binlik = substr($a,5, 1);
$yuzluk = substr($a,6, 1);
$onluk = substr($a,7, 1);
$birlik =substr($a,8, 1);
if ($yuzmilyon != "0" && $yuzmilyon != "1")
$sayi.= birlerBul($yuzmilyon) ."yüz";
else if ($yuzmilyon == "1")
$sayi.= "yüz";
else $sayi.= "";
if ($onmilyon != "0")
$sayi .= onlarBul($onmilyon);
if ($milyon != "0")
$sayi.= birlerBul($milyon) . "milyon";
else $sayi = "";
if ($yuzbinlik != "0")
$sayi .= birlerBul($yuzbinlik) ."yüz";
else $sayi .= "";
if ($onbinlik != "0")
$sayi .= onlarBul($onbinlik);
if ($binlik != "0")
$sayi .= birlerBul($binlik) . "bin";
else $sayi .= "bin";
if ($yuzluk != "1" && $yuzluk != "0")
$sayi .= birlerBul($yuzluk) . "yüz";
else if ($yuzluk == "1")
$sayi .= "yüz";
else if ($yuzluk == "0")
$sayi .= "";
if ($onluk != "0")
$sayi .= onlarBul($onluk);
if ($birlik != "0")
$sayi .= birlerBul($birlik);
}
return $sayi;
}
Bu problemin daha kısa bir çözüm yolu olabilir, şimdilik doğru sonuç verecek diğer bir deyişle iş görecek kadar bir fonksiyon yazdım. Sayıların başında sıfır olunca, önemsenmediğine dikkat ediniz.
KODLARI İNDİR
İyi çalışmalar - Kasım 2014
Tavsiye edilen Kaynak
C# ile Sayıyı Yazıya Çevirme
http://www.oguzhantas.com/csharp/25-csharp-ile-sayiyi-yaziya-cevirebilme.html
Bu problemin daha kısa bir çözüm yolu olabilir, şimdilik doğru sonuç verecek diğer bir deyişle iş görecek kadar bir fonksiyon yazdım. Sayıların başında sıfır olunca, önemsenmediğine dikkat ediniz.
KODLARI İNDİR
İyi çalışmalar - Kasım 2014
Tavsiye edilen Kaynak
C# ile Sayıyı Yazıya Çevirme
http://www.oguzhantas.com/csharp/25-csharp-ile-sayiyi-yaziya-cevirebilme.html

Dil Değiştir(Change Language)
Kategoriler
- Csharp(58)
- Csharp Formlar(23)
- Web Tasarım(9)
- CSS(27)
- JavaScript(37)
- PHP(50)
- Laravel(3)
- ASP.net(38)
- Excel(15)
- Güvenlik(4)
- E-Ticaret(3)
- Kariyer(5)
- SQL Server(29)
- MySQL(16)
- Linux(17)
- MacOSX(8)
- Ayarlar(12)
- Bilgisayar Ağları(3)
- Symfony(1)
- Teknoloji(7)
- VBS(1)
- Arduino(6)
- RaspberryPi(1)
- Algoritmalar(15)
- HTML(3)
- Python(2)
- Bash Script(7)
- C Programlama(10)
- Flutter - Dart(11)
- Bootstrap(1)
En çok Okunan 18 Makale
- :: Excelde EĞER Fonksiyonu Kullanımı...
- :: Csharp ile Access Veritabanı Bağlan...
- :: SQL nedir, Temel SQL Komutları nele...
- :: Hangi Linux Dağıtımı?
- :: OSX İşletim Sistemine PHP, MySQL, A...
- :: Excel Hesap tablosunda EĞERSAY Fonk...
- :: PHP dilini kullanarak MySQLi tekniğ...
- :: Excel Hesap tablosunda ÇOKETOPLA Fo...
- :: Excel Hesap tablosunda ETOPLA Fonks...
- :: Excel Hesap tablosunda ÇOKEĞERSAY F...
- :: Hangi Programlama Dilini Öğrenmeliy...
- :: Mac Bilgisayarınıza Windows 7 Yükle...
- :: PHP ile Basit Dosya Yükleme
- :: Excel hücrelerinde yıldız koyarak b...
- :: C# Programlama Dili ile İlgili Örne...
- :: PHP Dili kullanarak MySQLi Tekniği ...
- :: PhpMyAdmin Şifresi Nasıl Değiştiril...
- :: Hangisi acaba, PHP mi ASP.NET mi ?