Jak przerobic ten plik na klase, aby po wywolaniu funkcji $HOW_MUCH->amount('120.01'); zwracal wynik "sto dwadziescia zlotych jeden grosz";
dotychczas wszystko dziala, jednak plik musi byc wywolany
bezposrednio aby dzialal
moglby ktos to przerobic? albo pokazac jak to zrobic?
aha, plik musi byc przerobiony na PHP4
<?php
if(!function_exists('str_split')){
function str_split($string,$len = 1) {
if ($len < 1) return false;
for($i=0
, $rt = Array();$i<ceil
(strlen($string)/$len);$i++) $rt[$i] = substr($string, $len*$i, $len); return($rt);
}
}
'minus',
'zero',
'jeden',
'dwa',
'trzy',
'cztery',
'piec',
'szesc',
'siedem',
'osiem',
'dziewiec'),
'dziesiec',
'jedenascie',
'dwanascie',
'trzynascie',
'czternascie',
'pietnascie',
'szesnascie',
'siedemnascie',
'osiemnascie',
'dziewietnascie'),
'dziesiec',
'dwadziescia',
'trzydziesci',
'czterdziesci',
'piecdziesiat',
'szescdziesiat',
'siedemdziesiat',
'osiemdziesiat',
'dziewiecdziesiat'),
'sto',
'dwiescie',
'trzysta',
'czterysta',
'piecset',
'szescset',
'siedemset',
'osiemset',
'dziewiecset'),
'tysiac',
'tysiace',
'tysiecy'),
'milion',
'miliony',
'milionów'),
'miliard',
'miliardy',
'miliardów'),
'bilion',
'biliony',
'bilionów'),
'biliard',
'biliardy',
'biliardów'),
'trylion',
'tryliony',
'trylionów'),
'tryliard',
'tryliardy',
'tryliardów'),
'kwadrylion',
'kwadryliony',
'kwadrylionów'),
'kwintylion',
'kwintyliony',
'kwintylionów'),
'sekstylion',
'sekstyliony',
'sekstylionów'),
'septylion',
'septyliony',
'septylionów'),
'oktylion',
'oktyliony',
'oktylionów'),
'nonylion',
'nonyliony',
'nonylionów'),
'decylion',
'decyliony',
'decylionów')
);
function odmiana($odmiany, $int){ // $odmiany = Array('jeden','dwa','piec')
$txt = $odmiany[2];
if ($int == 1) $txt = $odmiany[0];
$jednosci = (int
) substr($int,-1
); $reszta = $int % 100;
if (($jednosci > 1 && $jednosci < 5) &! ($reszta > 10 && $reszta < 20))
$txt = $odmiany[1];
return $txt;
}
function liczba($int){ // odmiana dla liczb < 1000
$wynik = '';
if ($j == 0) return $slowa[1][0];
$jednosci = $j % 10;
$dziesiatki = ($j % 100 - $jednosci) / 10;
$setki = ($j - $dziesiatki*10 - $jednosci) / 100;
if ($setki > 0) $wynik .= $slowa[4][$setki-1].' ';
if ($dziesiatki > 0)
if ($dziesiatki == 1) $wynik .= $slowa[2][$jednosci].' ';
else
$wynik .= $slowa[3][$dziesiatki-1].' ';
if ($jednosci > 0 && $dziesiatki != 1) $wynik .= $slowa[1][$jednosci].' ';
return $wynik;
}
function slownie($int){
$out = '';
if ($in{0} == '-'){
$out = $slowa[0].' ';
}
$txt = str_split
(strrev($in), 3
);
if ($in == 0) $out = $slowa[1][0].' ';
for ($i = count($txt) - 1; $i >= 0; $i--){ $liczba = (int
) strrev($txt[$i]); if ($liczba > 0)
if ($i == 0)
$out .= liczba($liczba).' ';
else
$out .= ($liczba > 1 ? liczba($liczba).' ' : '')
.odmiana( $slowa[4 + $i], $liczba).' ';
}
}
function kwotaslownie($kwota){
while(strlen($gr) < 2
) $gr .= '0';
echo slownie
($zl) . ' ' . odmiana
(Array('zloty', 'zlote', 'zlotych'), $zl) . ' ' . slownie
($gr) . ' ' . odmiana
(Array('grosz', 'grosze', 'groszy'), $gr)); }
?>
jeszcze jakby ktos polskie "ogonki" poprawil to bylbym wniebowziety
Ten post edytował AndyPSV 23.08.2010, 08:05:15