Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] jak przerobic "plik" na klase
AndyPSV
post
Post #1





Grupa: Zarejestrowani
Postów: 393
Pomógł: 5
Dołączył: 6.02.2003
Skąd: The.Luciferian.Doctrine.p
df

Ostrzeżenie: (30%)
XX---


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

  1. <?php
  2.  
  3. if(!function_exists('str_split')){
  4. function str_split($string,$len = 1) {
  5. if ($len < 1) return false;
  6. for($i=0, $rt = Array();$i<ceil(strlen($string)/$len);$i++)
  7. $rt[$i] = substr($string, $len*$i, $len);
  8. return($rt);
  9. }
  10. }
  11.  
  12. $slowa = Array(
  13. 'minus',
  14.  
  15. 'zero',
  16. 'jeden',
  17. 'dwa',
  18. 'trzy',
  19. 'cztery',
  20. 'piec',
  21. 'szesc',
  22. 'siedem',
  23. 'osiem',
  24. 'dziewiec'),
  25.  
  26. 'dziesiec',
  27. 'jedenascie',
  28. 'dwanascie',
  29. 'trzynascie',
  30. 'czternascie',
  31. 'pietnascie',
  32. 'szesnascie',
  33. 'siedemnascie',
  34. 'osiemnascie',
  35. 'dziewietnascie'),
  36.  
  37. 'dziesiec',
  38. 'dwadziescia',
  39. 'trzydziesci',
  40. 'czterdziesci',
  41. 'piecdziesiat',
  42. 'szescdziesiat',
  43. 'siedemdziesiat',
  44. 'osiemdziesiat',
  45. 'dziewiecdziesiat'),
  46.  
  47. 'sto',
  48. 'dwiescie',
  49. 'trzysta',
  50. 'czterysta',
  51. 'piecset',
  52. 'szescset',
  53. 'siedemset',
  54. 'osiemset',
  55. 'dziewiecset'),
  56.  
  57. 'tysiac',
  58. 'tysiace',
  59. 'tysiecy'),
  60.  
  61. 'milion',
  62. 'miliony',
  63. 'milionów'),
  64.  
  65. 'miliard',
  66. 'miliardy',
  67. 'miliardów'),
  68.  
  69. 'bilion',
  70. 'biliony',
  71. 'bilionów'),
  72.  
  73. 'biliard',
  74. 'biliardy',
  75. 'biliardów'),
  76.  
  77. 'trylion',
  78. 'tryliony',
  79. 'trylionów'),
  80.  
  81. 'tryliard',
  82. 'tryliardy',
  83. 'tryliardów'),
  84.  
  85. 'kwadrylion',
  86. 'kwadryliony',
  87. 'kwadrylionów'),
  88.  
  89. 'kwintylion',
  90. 'kwintyliony',
  91. 'kwintylionów'),
  92.  
  93. 'sekstylion',
  94. 'sekstyliony',
  95. 'sekstylionów'),
  96.  
  97. 'septylion',
  98. 'septyliony',
  99. 'septylionów'),
  100.  
  101. 'oktylion',
  102. 'oktyliony',
  103. 'oktylionów'),
  104.  
  105. 'nonylion',
  106. 'nonyliony',
  107. 'nonylionów'),
  108.  
  109. 'decylion',
  110. 'decyliony',
  111. 'decylionów')
  112. );
  113.  
  114. function odmiana($odmiany, $int){ // $odmiany = Array('jeden','dwa','piec')
  115. $txt = $odmiany[2];
  116. if ($int == 1) $txt = $odmiany[0];
  117. $jednosci = (int) substr($int,-1);
  118. $reszta = $int % 100;
  119. if (($jednosci > 1 && $jednosci < 5) &! ($reszta > 10 && $reszta < 20))
  120. $txt = $odmiany[1];
  121. return $txt;
  122. }
  123.  
  124. function liczba($int){ // odmiana dla liczb < 1000
  125. global $slowa;
  126. $wynik = '';
  127. $j = abs((int) $int);
  128.  
  129. if ($j == 0) return $slowa[1][0];
  130. $jednosci = $j % 10;
  131. $dziesiatki = ($j % 100 - $jednosci) / 10;
  132. $setki = ($j - $dziesiatki*10 - $jednosci) / 100;
  133.  
  134. if ($setki > 0) $wynik .= $slowa[4][$setki-1].' ';
  135.  
  136. if ($dziesiatki > 0)
  137. if ($dziesiatki == 1) $wynik .= $slowa[2][$jednosci].' ';
  138. else
  139. $wynik .= $slowa[3][$dziesiatki-1].' ';
  140.  
  141. if ($jednosci > 0 && $dziesiatki != 1) $wynik .= $slowa[1][$jednosci].' ';
  142. return $wynik;
  143. }
  144.  
  145. function slownie($int){
  146.  
  147. global $slowa;
  148.  
  149. $in = preg_replace('/[^-\d]+/','',$int);
  150. $out = '';
  151.  
  152. if ($in{0} == '-'){
  153. $in = substr($in, 1);
  154. $out = $slowa[0].' ';
  155. }
  156.  
  157. $txt = str_split(strrev($in), 3);
  158.  
  159. if ($in == 0) $out = $slowa[1][0].' ';
  160.  
  161. for ($i = count($txt) - 1; $i >= 0; $i--){
  162. $liczba = (int) strrev($txt[$i]);
  163. if ($liczba > 0)
  164. if ($i == 0)
  165. $out .= liczba($liczba).' ';
  166. else
  167. $out .= ($liczba > 1 ? liczba($liczba).' ' : '')
  168. .odmiana( $slowa[4 + $i], $liczba).' ';
  169. }
  170. return trim($out);
  171. }
  172. function kwotaslownie($kwota){
  173. $kwota = explode('.', $kwota);
  174.  
  175. $zl = preg_replace('/[^-\d]+/','', $kwota[0]);
  176. $gr = preg_replace('/[^\d]+/','', substr(isset($kwota[1]) ? $kwota[1] : 0, 0, 2));
  177. while(strlen($gr) < 2) $gr .= '0';
  178.  
  179. echo slownie($zl) . ' ' . odmiana(Array('zloty', 'zlote', 'zlotych'), $zl) .
  180. (intval($gr) == 0 ? '' :
  181. ' ' . slownie($gr) . ' ' . odmiana(Array('grosz', 'grosze', 'groszy'), $gr));
  182. }
  183.  
  184. ?>


jeszcze jakby ktos polskie "ogonki" poprawil to bylbym wniebowziety

Ten post edytował AndyPSV 23.08.2010, 08:05:15
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.12.2025 - 16:06