PHP ile Sayıyı Yazıya çevirme

Web tabanlı uygulama geliştirme araçları(PHP, ASP vb...) ile ilgili konuları buraya yazabilirsiniz.
Cevapla
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

PHP ile Sayıyı Yazıya çevirme

Mesaj gönderen vkamadan »

Merhaba ,
Nette bir fonksiyon buldum ancak,PHP konusunda pek fazla bilgi sahibi olmadığımdan olsa gerek, fonksiyonda hatavar ama bulup düzeltemedim.

Kod: Tümünü seç

function number2text($number)
{
if (!is_int($number)) {
return 0;
}
else {
$number = number_format($number, 0, ',', ' ');
$numbers = explode(' ', $number);
$cnt = count($numbers);
$ara = array("bin", "milyon", "milyar"); 
// maksimum seviye milyar…
$sayi = array("bir", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz"); // tek hane
$sayi2 = array("on", "yirmi", "otuz", "kırk", "elli", "altmış", "yetmiş", "seksen", "doksan"); // çifthane
$i = $cnt - 2;
$j = 0;
while ($j < $cnt) {
$a = $numbers[$j];
$a1 = $a{0};
$a2 = $a{1};
$a3 = $a{2};
if ($a >= 100) {
if ($a1 < 2) {
$return .= 'yüz '; // yüzlük hanesi
}
else {
$return .= $sayi[$a1-1] . ' yüz ';
}
$return .= $sayi2[$a2-1];
$return .= $sayi[$a3-1];
}
elseif (10 < $a && $a < 100) {
$return .= $sayi2[$a1-1];
$return .= $sayi[$a2-1];
}
else {
$return .= $sayi[$a1-1];
}

$return .= ' ' . $ara[$i] . ' ';
$i–;

$j++;
}
return $return;

}

}
print(number2text(152985));
?>
Şeklinde kullandığımda , tarayıcımda,

Notice: Undefined variable: return in c:\inetpub\wwwroot\phptest\test.php on line 24

Notice: Undefined variable: i– in c:\inetpub\wwwroot\phptest\test.php on line 41

Notice: Undefined variable: i– in c:\inetpub\wwwroot\phptest\test.php on line 41
yüz elliiki bin dokuz yüz seksenbes bin

şeklinde mesaj veriyor sonda çıktıyı veriyor ancak çıktıda yanlış.
Teşekkürler.
Volkan KAMADAN
www.polisoft.com.tr
onaydin
Üye
Mesajlar: 202
Kayıt: 07 Şub 2006 02:30

Mesaj gönderen onaydin »

Hata yok notice ler uyarı anlamında verilen mesajlar syntax ı söyle yazsan daha güzel olur gibisinden.
Php kurulumda notice leri ekrana basma derseniz bi daha karşınıza çıkmaz.

Çıktının nasıl olması gerekiyor
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Merhaba,
152985 sonucu ,
"yüz elliiki bin dokuz yüz seksenbes" çıkmalı ama
"yüz elliiki bin dokuz yüz seksenbes bin" çıktı sonuç.
Sorunu anlayamadım.
Volkan KAMADAN
www.polisoft.com.tr
Cevapla