Parsování ceny (na částku a měnu) rubrika: Programování: PHP

5 pix
položil/-a 7.2.2015

Hledám nějaké řešení na univerzální parsování cen. V podstatě jde o to z jakékoli možné formy textu dostat konkréní částku a měnu:

823,50 Kč
12 EUR
$ 20,90
31 USD

... a podobně. S tím, že by byla návratem částka a měna třeba v ISO 4217 (USD, PLN, CZK ...). Nezahlédl jste někdo něco podobného? :) PHP nebo API nejlépe.

odkaz Vyřešeno
10 jiri.knesl
odpověděl/-a 8.2.2015

Existuje omezený počet znaků (euro, dolar, yen, libra, ví někdo o nějakých dalších?) + jsou lokalizované názvy měn.

Ze Zend Frameworku bych vytáhl názvy všech lokalizací měn ze všech jazyků. Pomocí strpos bych zjistil, o jakou měnu se jedná a pak, pokud bych chtěl měnu i parsovat (různé země mají různé zvyklosti v používání teček, čárek, mezer v číslech), použil bych Zend_Currency a Zend_Locale.

Obojí se dá ze ZF dobře vypárat a můžeš použít i jiný FW.

Komentáře

  • pix : Díky, ten Zend_Currency vypadá dobře. Mě nejvíc trápilo to parsování. A protože parsovat budu ze spousty pochybných zdrojů, nechtěl jsem něco co pracuje striktně s nastavením locale. Zatím úspěšně testuju https://github.com/mcuadros/currency-detector. A samotnou měnu a částku si pak už navážu na vlastní objekt. 8.2.2015
  • pepa.lobotka : Těch znaků/symbolů je spousta: http://www.xe.com/symbols.php 13.2.2015

Pro zobrazení všech 4 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.