FaLcoN Posted February 27, 2004 Report Share Posted February 27, 2004 Vai kādam ir gatava funkcija, kā iegūt no skaitļa, piemēram 1234.45 summu vārdiem? Lai iznāktu: Viens tūkstotis divi simti trīsdesmit četri LVL 45 santīmi. Link to comment Share on other sites More sharing options...
Klez Posted February 28, 2004 Report Share Posted February 28, 2004 (edited) tu gan laikam joko :) raxti katram ciparam kodu $sk = 1245; if($sk == "1245"){ echo "Tuukstotc divi simti cetrdesmit pieci"; } :))))) pascal valodaa tas ir iespeejams bet par php nav ne jausmas Edited February 28, 2004 by Klez Link to comment Share on other sites More sharing options...
sviesc Posted March 1, 2004 Report Share Posted March 1, 2004 Nu es nezinu vai tā būtu gluži pareizi, bet es darītu šādi: <? $text = "123,43" $text = str_replace("1", "viens", $text); $text = str_replace("2", "divi", $text); $text = str_replace("3", "trīsi", $text); $text = str_replace("4", "četrii", $text); ?> tad noteiktu cik tag ir symboli textā ar strlen() un atiecīgi ja 3symboli pirms komata tad smimts ja 4 tad tūlkstoc utt varbūt tas nav tas gudrakais idejas risinājums, bet tāds ir Link to comment Share on other sites More sharing options...
Roze Posted March 1, 2004 Report Share Posted March 1, 2004 :)))))pascal valodaa tas ir iespeejams bet par php nav ne jausmas Nu iemet pascal kodu paarveidosim uz php :) Link to comment Share on other sites More sharing options...
Venom Posted March 1, 2004 Report Share Posted March 1, 2004 pamatpieeja šamai problēmai ir sadalīt skaitli pēc desmitrangiem: 1234 = 1*1000+2*100+3*10+4 attiecīgiem skaitļiem 0-9 izvedo masīvu ar nosaukumiem (divi,trīs...)/rangu nosaukumiem (div,četr - priekš + desmit), un pēc tam pieapstrādā dažādus izņēmumums, piem.: 1 pieliekams "tūkstotis","simts" pārējiem - "tūkstoši","simti". attiecīgos rangus var tālāk sadalīt pēc tās pašas sistēmas (xx tūkstoši. xxx tūkstoši). PS>gūglei ir daudz šādu skriptu gan krievu gan citam valodām, tā kā var vienkārši pārtulkot. Link to comment Share on other sites More sharing options...
amaretto4u Posted November 1, 2012 Report Share Posted November 1, 2012 Tā kā latviski forumos jēdzīgu atbildi neatradu šim jautājumam, tad nolēmu pats uzrakstīt skriptiņu, jo pašam savajadzējās, tas gan ir standalone skripts izveidots, kas saņem datus no $_GET parametriem, bet ja nu kādam noder... <?php $language['parts'][0] = 'santīmi'; $language['part'][0] = 'santīms'; $language['parts'][2] = 'lati'; $language['part'][2] = 'lats'; $language['parts'][3] = 'tūkstoši'; $language['part'][3] = 'tūkstotis'; $language['parts'][4] = 'miljoni'; $language['part'][4] = 'miljons'; $language['parts'][5] = 'miljardi'; $language['part'][5] = 'miljards'; $language['parts']['hundred'] = 'simti'; $language['part']['hundred']= 'simts'; $language['tens'] = array("Desmit","Divdesmit","Trīsdesmit","Četrdesmit","Piecdesmit","Sešdesmit","Septiņdesmit","Astoņdesmit", "Deviņdesmit"); $language['teens'] = array("Vienpadsmit","Divpadsmit","Trīspadsmit","Četrpadsmit","Piecpadsmit","Sešpadsmit","Septiņpadsmit","Astoņpadsmit", "Deviņpadsmit"); $language['ones'] = array("Viens","Divi","Trīs","Četri","Pieci","Seši","Septiņi","Astoņi", "Deviņi"); $say = ''; $number = $_GET['sum']; $number = explode('.', $number); $big = $number[0]; $small = $number[1]; while(strlen($big)){ $bigs[] = substr($big, -3, 3); $big = substr($big, 0, -3); } krsort($bigs); foreach($bigs as $key => $value){ ptw($value, $key); } function ptw($number, $part){ global $language, $say; $teens = false; while( strlen($number)<3 ) $number = ' ' . $number; if($number[0]!=' ') $say .= $language['ones'][ $number[0]-1 ] . ' ' . $language['parts']['hundred'] . ' '; if($number[1]!=' '){ if($number[1]==1) $teens = true; else $say .= $language['tens'][ $number[1]-1 ] . ' '; } if($teens) $say .= $language['teens'][ $number[2]-1 ] . ' '; else $say .= $language['ones'][ $number[2]-1 ] . ' '; if($number[2]==1 && !$teens) $say .= $language['part'][$part+2] . ' '; else $say .= $language['parts'][$part+2] . ' '; } $say .= ', ' . $small . ' ' . $language['parts'][0]; echo mb_substr($say,0,1).mb_strtolower(mb_substr($say,1), 'UTF-8'); Link to comment Share on other sites More sharing options...
Arnis Juraga Posted July 25, 2013 Report Share Posted July 25, 2013 Izmēģināju funkciju, bet tiešām - ļoti nepilnīga :( sorry. Saprotu, ka intelektuālais īpašums un tā ... bet - vai kādam tomēr nav gatava strādājoša funkcija uz šo? Vai tiešām to php neviens neizmanto? PEAR neder, jo ne vienmēr uz servera ir supports. Link to comment Share on other sites More sharing options...
jurchiks Posted July 25, 2013 Report Share Posted July 25, 2013 (edited) https://github.com/jurchiks/numbers2words Rakstīju ļoti sen, kad tikko sāku programmēt PHP, bet šis tika izmantots kredītu rēķinos sohocredit.lv (latviski, krieviski, lietuviski, angliski, spāniski - nācās mācīties skaitīt spāniski :D). Priekš summām zem 100k pietika. Derētu uzprišināt kodu, tagad lasu un izskatās bik nesmuki. Bet nu to jau kādu citu dienu. + doma kaut kad piepliķēt klāt vēl citas valodas, tad jau redzēs. Edited July 25, 2013 by jurchiks Link to comment Share on other sites More sharing options...
jurchiks Posted July 26, 2013 Report Share Posted July 26, 2013 Any feedback? Mazums kaut kas tomēr nav, kā vajag. Link to comment Share on other sites More sharing options...
daGrevis Posted July 26, 2013 Report Share Posted July 26, 2013 https://github.com/ivanovsaleksejs/NumToText Link to comment Share on other sites More sharing options...
Arnis Juraga Posted July 26, 2013 Report Share Posted July 26, 2013 https://github.com/ivanovsaleksejs/NumToText Šo vakar izmēģināju. Taču kaut kas 'baigi nestrādāja'. Šodien tomēr palaidu vēlreiz ar testiem un izskatās, ka ir ok. Tikai jāintegrē. https://github.com/j...s/numbers2words Par šo es Tev galvenos 2 issue nopostēju githubā. Varētu attīstīt līdz vienam perfektam :) Paldies par abiem! Link to comment Share on other sites More sharing options...
jurchiks Posted July 26, 2013 Report Share Posted July 26, 2013 (edited) Jopt, tu issues manā kodā iepostēji tā otra projekta bugtrackerī... Anyway, rīt paskatīšos, kas un kā. P.S. es toreiz naudas summu izvadīšanai izmantoju "Ls" un "sant", tad nebija jāuztraucās par viensk./daudzsk. formām. Edited July 26, 2013 by jurchiks Link to comment Share on other sites More sharing options...
Kavacky Posted November 12, 2013 Report Share Posted November 12, 2013 https://github.com/ivanovsaleksejs/NumToTextAchtung! Šī bibliotēka ir nedaudz papildināta ar iespēju izdrukāt centus/santīmus/kapeikas arī tad, kad to daudzums ir 0. Izmantojams, piemēram, rēķinos. Link to comment Share on other sites More sharing options...
jurchiks Posted November 12, 2013 Report Share Posted November 12, 2013 http://www.php.net/manual/en/class.numberformatter.phpMēģināju nesen darbā šo piekurbulēt, kaut kā nesanāca, kaut gan PHP 5.5.4 stāv uz kastes un intl extension ir ieslēgts.Pievērsiet uzmanību pašam apakšējam komentāram: <?php $f = new NumberFormatter("en", NumberFormatter::SPELLOUT); echo $f->format(123456); ?> Produces the result: one hundred twenty-three thousand four hundred fifty-six Iespējams, ka tā padarīšana spēj arī citās valodās to izdarīt, bet, kā jau minēju, man neizdevās pat palaist... Link to comment Share on other sites More sharing options...
aaxc Posted November 12, 2013 Report Share Posted November 12, 2013 1. Šādu scriptu izveidot tev pašam prasīs ne vairāk ka 15minūtes. 2. Manuprāt vienīgais iemesls šo topiku kustināt ir tikai tad, ja esi izveidojis modifikāciju priekš eiro ar pāriešanas datumiem, kursa starpībām utt. Link to comment Share on other sites More sharing options...
Recommended Posts