Huhu Andreas
Neunhundertneunundneunzigmilliardenneunhundertneunundneunzigmillionenneunhundertneunundneunzigtausendneunhundertneunundneunzig
oder 999999999999
das ist z.Zt. die größte Zahl welche mein kleines Skript "transformieren" kann.
Sollte für normale Spendenbeträge reichen (keine Parteispenden).
Ist sicherlich noch verschönerungs+verbesserungswürdig aber fürs erste soll es das mal gewesen sein, hat jedenfalls Spass gemacht.
Viele Grüße
lulu
<?php
function get_zehner($n)
{
$zahlwoerter=array('null','ein','zwei','drei','vier','fünf','sechs','sieben','acht','neun','zehn','elf','zwölf');
$n=abs(floor($n)); # nur ganze positive Zahlen
if($n>99) return $n; # max 99
// Zahlen bis 12
if($n<13){
$zahlwoerter[1]='eins';
return $zahlwoerter[$n];
}
// Zahlen bis 19
if($n<20){
$zahlwoerter[6]='sech';
$zahlwoerter[7]='sieb';
return $zahlwoerter[($n-10)].'zehn';
}
// Zahlen bis 99
if($n<100){
$zehner=floor($n/10);
$einer=$n-$zehner*10;
$einer_wert=$einer>0?$zahlwoerter[$einer].'und':'';
$zahlwoerter[2]='zwan';
$zahlwoerter[6]='sech';
$zahlwoerter[7]='sieb';
$zehner_wert=$zahlwoerter[$zehner].($zehner==3?'ßig':'zig');
return $einer_wert.$zehner_wert;
}
return $n;
}
function get_hundert($n)
{
$n=abs(floor($n)); # nur ganze positive Zahlen
if($n>999) return $n; # max 999
$hunderter=floor($n/100);
$rest=$n-$hunderter*100;
if($hunderter>0){
$hunderter_wert=( $hunderter==1?'ein':get_zehner($hunderter) ).'hundert';
}
$rest_wert=$rest>0?get_zehner($rest):'';
return $hunderter_wert.$rest_wert;
}
function zahlwort($n)
{
$n=abs(floor($n)); # nur ganze positive Zahlen
$l=strlen($n);
$einer=get_zehner(substr($n,-2) );
if($l>2){
$hdt=substr($n,-3) ;
$hunderter_wert=get_hundert($hdt);
$einer='';
}
if($l>3){
$tsd=substr($n,-6,-3) ;
if($tsd>0){
$tausender_wert=get_hundert($tsd).'tausend';
}
}
if($l>6){
$mio=substr($n,-9,-6) ;
if($mio>0){
$mio_wert=( $mio==1?'eine':get_hundert($mio)).'million'.($mio>1?'en':'');
}
}
if($l>9){
$mia=substr($n,-12,-9) ;
if($mia>0){
$mia_wert=( $mia==1?'eine':get_hundert($mia)).'milliarde'.($mia>1?'n':'');
}
}
return sprintf('%s%s%s%s%s',$mia_wert,$mio_wert,$tausender_wert,$hunderter_wert,$einer);
}
function zahl_ausschreiben($n)
{
return ucfirst(zahlwort($n));
}
for($i=0;$i<100;$i++){
$n=$i*1;
printf ('%s -> %s<br>',$n,zahl_ausschreiben($n));
}
echo zahl_ausschreiben(999999999999);
?>