![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 3.10.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Przyznaję się bez bicia - jestem totalnym początkującym jezeli chodzi o php. Mam nadzieję, że ktoś mi pomoże z nastepującym problemem - potrzebuję funkcji, która zamieniałaby dowolną liczbę na nazwy poszczególnych cyfr z tej liczby. Czyli np. "11" - "jeden jeden". Oczywiście liczba może być dowolnych rozmiarów. Z góry dzięki za pomoc. n-b |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 23.08.2003 Skąd: Olsztyn, Polska Ostrzeżenie: (0%) ![]() ![]() |
[php:1:85b6fee0f6]
$wynik = "": $cyfryslownie = array (0 => 'zero', 1 => 'jeden'); // i tak dalej settype($twojaliczba,"string"); $tablicacyfrzliczby = explode ( "", $twojaliczba); foreach ($tablicacyfrzliczby as $cyfra) { $wynik .= $cyfryslownie[$cyfra]." "; } echo $wynik; [/php:1:85b6fee0f6] Nie testowałem, więc nie wiem czy ruszy z miejsca, ale powinno. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 29.06.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
ewentualnie polecam teką moją starą funkcję:
[php:1:b29afd1db7]<?php function drukuj($liczba = 0) { if($liczba < 1000000){ if($liczba == 0){$wyswietlane = 'zero';} if($liczba > 100000){ $sto = TRUE; $pisz = (int)$liczba / 100000; $wyswietl = array( '1' => 'sto', '2' => 'dwieście ', '3' => 'trzysta', '4' => 'czterysta', '5' => 'pięćset', '6' => 'sześćset', '7' => 'siedemset', '8' => 'osiemset', '9' => 'dziewięćset' ); $wyswietlane .= "$wyswietl[$pisz] "; $od = (int)$pisz; $od = $od*100000; $liczba = $liczba -= $od; } if($liczba > 1000){ $pisz = (int)$liczba /1000; $doswietl = array( '0' => 'tysięcy', '1' => 'jeden tysięcy', '2' => 'dwa tysiące', '3' => 'trzy tysiące', '4' => 'cztery tysiące', '5' => 'pięć tysięcy', '6' => 'sześć tysięcy', '7' => 'siedem tysięcy', '8' => 'osiem tysięcy', '9' => 'dziewięć tysięcy'); if($pisz > 20&&(int)$pisz/10 !== $pisz/10){ $odejmuj = $pisz; $b = $pisz; $a = $pisz / 10; $pisz = (int)$a * 10; $c = $b - $pisz; $dopisz = " $doswietl[$c]"; } else{$odejmuj = $pisz;} $wyswietl = array( '1' => 'tysiąc', '2' => 'dwa tysiące', '3' => 'trzy tysiące', '4' => 'cztery tysiące', '5' => 'pięć tysięcy', '6' => 'sześć tysięcy', '7' => 'siedem tysięcy', '8' => 'osiem tysięcy', '9' => 'dziewięć tysięcy', '11' => 'jedenaście tysięcy', '12' => 'dwanaście tysięcy', '13' => 'trzynaście tysięcy', '14' => 'czternaście tysięcy', '15' => 'piętnaście tysięcy', '16' => 'szesnaście tysięcy', '17' => 'siedemnaście tysięcy', '18' => 'osiemnaście tysięcy', '19' => 'dziewiętnaście tysięcy', '10' => 'dziesięć', '20' => 'dwadzieścia', '30' => 'trzydzieści', '40' => 'czterdzieści', '50' => 'pięćdziesiąt', '60' => 'sześćdziesiąt', '70' => 'siedemdziesiąt', '80' => 'osiemdziesiąt', '90' => 'dziewięćdziesiąt', '99' => 'jeden tysięcy' ); if($sto == TRUE&&(int)$pisz == 1){$pisz = 99;} $wyswietlane .= "$wyswietl[$pisz]$dopisz "; $od = (int)$odejmuj; $od = $od*1000; $liczba2 = $liczba -= $od; } elseif($liczba < 1000){ $liczba2 = $liczba;} if($liczba2 > 100){ $pisz = (int)$liczba2/100; $wyswietl = array( '1' => 'sto', '2' => 'dwieście ', '3' => 'trzysta', '4' => 'czterysta', '5' => 'pięćset', '6' => 'sześćset', '7' => 'siedemset', '8' => 'osiemset', '9' => 'dziewięćset' ); $wyswietlane .= "$wyswietl[$pisz] "; $od = (int)$pisz; $od = $od*100; $liczba3 = $liczba2 -= $od; } elseif($liczba2 < 100){ $liczba3 = $liczba2;} if($liczba3 > 9){ if($liczba3 < 20){$pisz = $liczba3;}else{$pisz = (int)$liczba3/10;} $wyswietl = array( '2' => 'dwadzieścia', '3' => 'trzydzieści ', '4' => 'czterdziesci', '4' => 'czterdzieści', '5' => 'pięćdziesiąt', '6' => 'sześćdziesiąt', '7' => 'siedemdziesiąt', '8' => 'osiemdziesiąt', '9' => 'dziewięćdziesiąt', '10' => 'dziesięć', '11' => 'jedenaście', '12' => 'dwanaście', '13' => 'trzynaście', '14' => 'czternaście', '15' => 'piętnaście', '16' => 'szesnaście', '17' => 'siedemnaście', '18' => 'osiemnaście', '19' => 'dziewiętnaście' ); $wyswietlane .= "$wyswietl[$pisz] "; if($pisz < 10){ $od = (int)$pisz; $od = $od*10; $liczba4 = $liczba3 -= $od;} else{$liczba4 = 0;} } elseif($liczba3 < 10){ $liczba4 = $liczba3;} if($liczba4 >= 0){ $wyswietl = array( '1' => 'jeden', '2' => 'dwa', '3' => 'trzy', '4' => 'cztery', '5' => 'pięć', '6' => 'sześć', '7' => 'siedem', '8' => 'osiem', '9' => 'dziewięć'); $w = $wyswietl[(int)$liczba4]; $wyswietlane .= "$w "; }} else {$wyswietlane = '<font color=red><b>BŁĄD!</b></font>Podana liczba nie może być odczytana. Funkcja może odczytać liczby <b>nie większe</b> niż 999999!';} return $wyswietlane; } ?>[/php:1:b29afd1db7] przeczyta ci dowolną liczbę mniejszą od miliona... |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 3.10.2003 Ostrzeżenie: (0%) ![]() ![]() |
Działa :-)
Wielkie dzięki :-)) n-b |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
php Początkujący ~> Skrypty
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 09:08 |