Zehn
<?php
/**
This function has still some bugs and shoud be rewritten
by David Tibbe, 2004/08/03
**/
function parseZahl($nr, $stelle)
{
$out = '';
$cutted = FALSE;
if ($nr > 1)
{
$anz = 1;
}
else
{
$anz = 0;
}
$anhang = array(
array('', ''),
array('tausend', 'tausend'),
array('millionen', 'millionen'),
array('milliarde', 'milliarden'),
array('billionen', 'billionen'),
array('billiarde', 'billiarden'),
array('trillionen', 'trillionen'),
array('trilliarde', 'trilliarden'),
array('quadrillionen', 'quadrillionen'),
array('quadrilliarde', 'quadrilliarden'),
array('quintillionen', 'quintillionen'),
array('quintilliarde', 'quintilliarden'),
array('sextillionen', 'sextillionen'),
array('sextilliarde', 'sextilliarden'),
array('septillionen', 'septillionen'),
array('septilliarde', 'septilliarden'),
array('oktillionen', 'oktillionen'),
array('oktilliarde', 'oktilliarden'),
array('nonillionen', 'nonillionen'),
array('nonilliarde', 'nonilliarden'),
array('dezillionen', 'dezillionen'),
array('dezilliarde', 'dezilliarde')
);
$zahlen = array('', 'ein#', 'zwei',
'drei', 'vier', 'fünf',
'sechs', 'sieben', 'acht',
'neun', 'zehn', 'elf',
'zwölf', 'dreizehn',
'vierzehn', 'fünfzehn',
'sechzehn', 'siebzehn',
'achtzehn', 'neunzehn');
$ziger = array('', '', 'zwanzig', 'dreißig',
'vierzig', 'fünfzig',
'sechzig', 'siebzig',
'achtzig', 'neunzig');
if ($nr > 99)
{
$out = $zahlen[$nr{0}].'hundert';
$out = str_replace('#', '', $out);
$nr = substr($nr, 1, 2);
$cutted = TRUE;
}
if ($nr > 19)
{
if ($nr{1} != 0)
{
$out = $out.$zahlen[$nr{1}].'und';
$out = str_replace('#', '', $out);
}
$out = $out.$ziger[$nr{0}];
}
else
{
$out = $out.$zahlen[(int)$nr];
$out = str_replace('#', 'e', $out);
}
if ($out == 'eine')
{
if ($stelle == 1)
{
$out = 'ein';
}
else if ($stelle == 0)
{
$out = 'eins';
}
}
if ((int)$nr !== 0 || $cutted)
{
$out = $out.$anhang[$stelle][$anz];
}
return $out;
}
$zahl = $_GET['zahl'];
$part = array();
while (strlen($zahl) > 2)
{
$part[] = substr($zahl, -3);
$zahl = substr($zahl, 0, -3);
}
if (!empty($zahl))
{
$part[] = $zahl;
}
$part = array_reverse($part);
$myStr = '';
for ($i = 0; $i < sizeof($part); $i++)
{
$myStr = $myStr.parseZahl($part[$i], sizeof($part) - $i - 1);
}
$myStr = ucfirst($myStr);
echo $myStr.'<hr>';
highlight_file(__FILE__);
?>