Jak na kurzy měn pomocí PHP, JSON a Google

Jistě dobře víte, že Google vám na požádání převede různé měrné jednotky na jiné. To stejné umí s penězi, stačí zadat částku, zdrojovou a cílovou měnu. Možná ale nevíte, že nabízí API, které lze pro převody měn využít i ve vašich webových aplikacích.
reklama

Ještě jste měnu pomocí Google nepřeváděli a tato informace je pro vás nová? Pak to honem napravte. Otevřete si Google nebo použijte hledací políčko v prohlížeči a napište 10 USD to CZK. Po vyhledání tohoto „výrazu“ vám Google sdělí, že 10 dolarů je tolik a tolik českých korun. Syntaxe je tedy zřejmá. Zadáte částku, kód zdrojové měny, klíčové slovo „to“ a kód cílové měny.

Pokud chcete jednoduchý převodník měn nabídnout na svém webu (podobně, jako to mám na Crikvenica-Chorvatsko.cz, kde ale Google nevyužívám), pak určitě uvítáte, že Google nabízí přístup ke svému konvertoru pomocí JSON. Funguje to jednoduše. Sestavíte URL v potřebném formátu a na ní se vám vrátí výstup ve formátu JSON, který ve své aplikaci dále zpracujete.

Google nevrací validní JSON

Problém je bohužel v tom, že Google sám o sobě nevrací validní JSON. Můžete se přesvědčit. Syntaxe pro adresu Google Convertoru je následující:

http://www.google.com/ig/calculator?q=10USD=?CZK

První parametr ve výše uvedeném URL označuje výši částky a výchozí měnu, druhý pak měnu cílovou. Když se podíváte na vrácený výsledek, vidíte, že k validnímu JSONu, který by bylo možné zpracovat například v PHP pomocí funkce json_decode() něco chybí. Výrazy lhs, rhs, error a icc nejsou v uvozovkách. Funkce json_decode() si s tím neporadí, podobný problém byste měli i při zpracování pomocí JavaScriptu.

Můžete tedy buď tento výstup upravit pomocí regulárních výrazů tak, abyste získali validní JSON, nebo zkuste sáhnout po nástroji, který rovněž pracuje s daty z Google, ale výsledek převádí do použitelné podoby. Navíc bez slovního popisu měny, takže se vám bude lépe začleňovat do vašich skriptů.

Zpracování validního JSON pro převod měny v PHP

Následující kód je velmi jednoduchý. Použít jej můžete například jako obsluhu pro zpracování dat z nějakého formuláře. Do trojice proměnných přiřadíme výši částky a zdrojovou a cílovou měnu. Poté sestavíme URL, které nám vrátí převedenou měnu ve formátu JSON.

Vygenerovaný JSON z takto sestavené adresy načteme jako soubor a následně jej dekódujeme na jednotlivá data. K nim pak už stačí přistupovat jako k polím PHP. Zajímat nás bude především $data['v'] obsahující převedenou částku. Stačí ji ještě zaokrouhlit a můžeme poskládat výstupní řetězec.

<?php
 
$castka = 10;
$mena_zdroj = 'USD';
$mena_cil = 'CZK';
 
$url = 'http://rate-exchange.appspot.com/currency?from='.$mena_zdroj.'&to='.$mena_cil.'&q='.$castka;
 
$json = file_get_contents($url);
$data = json_decode($json, true);
 
print $castka .' '. $mena_zdroj .' = '. round($data['v'],2).' '.$mena_cil;
 
?>
Autor článku: Jan Polzer

Tvůrce webů z Brna se specializací na Drupal a Symfony. Obojí také školím spolu se základy SEO. Jsem Acquia Certified Developer a Site Builder a napsal jsem několik knih o Drupalu. Ve volných chvílích cestuji a podnikám výlety. Více se dozvíte na mém firemním webu.

reklama

Komentáře k článku

Přidat komentář

Filtered HTML

  • Povolené HTML značky: <a href hreflang> <em> <strong> <cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <p> <br>
  • Řádky a odstavce se zalomí automaticky.
  • Web page addresses and email addresses turn into links automatically.

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Poslední komentáře
reklama
reklama
Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

Knihy o Drupalu

Kniha Drupal 8 Kniha Drupal 7 333 tipů a triků pro Drupal
Více na KnihyPolzer.cz

@maxiorel na Twitteru

Maxiorel na Twitteru