Newsgroup: it.comp.www.php
Titolo: Trasformare numero in lettere

Ciao a tutti,
qualcuno di voi saprebbe dirmi dove trovare una funzioncina PHP  per
trasformare un numero nel suo corrispettivo in lettere (ex : 200 in
duecento). ?
Grazie
Luke



Questa e' la funzione in C:
http://groups.google.com/groups?q=php+diciassette+mille
Tradurla in PHP e' immediato (quanto segue non e' testato ed e' ampiamente
sub-ottimo visto che ho frullato il codice C con un convertitore scacio):
function unita($numero)
{
	$__u = array("", "uno", "due", "tre",
                        "quattro",
                        "cinque", "sei", "sette", "otto",
                        "nove", "dieci", "undici", "dodici",
                        "tredici",
                        "quattordici", "quindici",
                        "sedici",
                        "diciassette", "diciotto",
                        "diciannove" );
	return $__u[($numero > 20) ? $numero % 10 : $numero];
}
function decine($numero)
{
        $__d= array("", "", "venti", "trenta",
                        "quaranta",
                        "cinquanta", "sessanta", "settanta", "ottanta",
                        "novanta" );
        return $__d[(int)(($numero % 100) / 10)];
}
function centinaia($numero)
{
        $n = (int)($numero / 100);
        if ($n == 0)
                $centin = '';
        else
		$centin = ($n < 2 ? '' : unita($n)) . "cento";
        return $centin;
}
function migliaia($numero, $livello)
{
        $__m1 = array( "uno", "mille", "un milione", "un
miliardo"
);     $__m = array( "", "mila", " milioni", " miliardi"
);
        if (1 == $numero)
                return $__m1[$livello];
        return $__m[$livello];
}
function textnumerize($number)
{
        $minus = 0;
	$unit = 0;
        if ($number < 0)
        {
                $number  = -$number;
                $minus   = 1;
        }
        $testo = '';
        if (0 == $number)
        {
                $testo = "zero";
                return $testo;
        }
        for($divider=$number; $divider; $divider=(int)($divider/10))
                $unit++;
        $unit = (int)($unit/3);
        $unit++;
        $divider = 1;
        for ($i=1; $i < $unit; $i++)
                $divider *= 1000;
        print "Divider: $divider\n";
        while($number)
        {
                $numero = (int)($number / $divider);
                $number = $number % $divider;
                $divider= (int)($divider / 1000);
                $unit--;
                if (0 == $numero)
                        continue;
                if (1 == $numero)
                        $testo .= migliaia(1, $unit);
                else
                {
                        $testo .= centinaia($numero);
                        if ((int)(($numero % 100)/10) == 8)
                                $testo = substr($testo, strlen($testo)-1);
                        $testo .= decine($numero);
                        if ((($numero % 10) == 1) || (($numero % 10) ==
8))
                                $testo = substr($testo, strlen($testo)-1);
                        $testo .= unita($numero);
                        $testo .= migliaia($numero, $unit);
                }
                if ($number)
                        $testo .= " ";
        }
        if ($minus != 0)
        {
                $swapo = "meno $testo";
                $testo = $swapo;
        }
        return $testo;
}
print textnumerize($_REQUEST['numero']);
Leonardo
-- 
Time's angles, mages tell, conceal a place
incredible, beyond the mundane mind;
night-shrouded and between the seas of space
dread creatures drift in the ageless winds.

 duecento). ?
IN JS: 
http://www.jsdir.com/staffscripts/script083.asp