Twitter RSS
| |

Dupa cum probabil stiti (ma refer la webmasteri) BNR a scos o metoda developer-friendly de verificare a cursului valutar, online. Pana acum toti programatorii luau pagina http://www.bnr.ro/Ro/Info/ si faceau asocieri ca sa gaseasca cursul euro sau cursul dolarului. De ceva vreme BNR a pus la dispozitie o un fisier in format XML care usureaza mult treaba programatorilor. Fisierul il puteti gasi la adresa http://www.bnro.ro/nbrfxrates.xml

OK, sa o scurtam. Ca sa simplific treaba unora postez aici codul care l-am facut ca sa citesc valutele. Sunt convins ca sunt si altii care au nevoie :)

Pentru a functiona trebuie sa existe pe server libraria CURL si SimpleXML. Codul e urmatorul:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
< ?php
header('Content-type: text/plain');
 
// Trebuie sa iau XML-ul de pe bnr.ro si sa-l salvez in $curs;
$url  = 'http://www.bnro.ro/nbrfxrates.xml';
 
// Daca exista CURL, folosim CURL. Daca nu, folosim file_get_contents();
if( function_exists('curl_init') ) {
    $curl_handle=curl_init();
    curl_setopt($curl_handle,CURLOPT_URL,$url);
    curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
    curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
    $curs = curl_exec($curl_handle);
    curl_close($curl_handle);
} else {
    $curs = file_get_contents($url);
}
 
// OK, avem fisierul nbrfxrates.xml. Acum trebuie sa il citim
// pentru asta avem nevoie de SimpleXML
 
if( !class_exists('SimpleXMLElement') ){
    // Daca nu suporta SimpleXML e naspa
    // Nu extind ca nu am chef sa ma complic inutil
    // Oricine vrea sa ma completeze e binevenit :-)
    echo 'Serverul nu suporta SimpleXML';
    exit;
}
 
// Daca am ajuns pana aici toate-s bune si ne putem pune pe treaba :-)
$rates = array();
 
$xml = new SimpleXMLElement($curs);
foreach( $xml->Body->Cube->Rate as $rate ){
    $final = array();
    foreach( $rate->attributes() as $att => $value ){
        if( strcmp($att,'currency') == 0 )   $final['currency']   = (string) $value;
        if( strcmp($att,'multiplier') == 0 ) $final['multiplier'] = (string) $value;
    }
    $final['rate'] = (string) $rate;
    if( empty($final['multiplier']) ) $final['multiplier'] = 1;
    array_push($rates,$final);
}
 
// Daca am ajuns aici, datele sunt pastrate in $rates
print_r($rates);
?>

La final, in array-ul $rates se gaseste cate un array pentru fiecare valuta. Am incheiat cu un print_r($rates) ca sa se afiseze continutul array-ului, dar se poate inlocui cu o bucla foreach care afiseaza frumos valutele.

Popularity: 2% [?]

Comentarii pentru “Curs BNR cu PHP si SimpleXML”

Ai intrebari?

Reclama
Categorii
Apache
Articole si tutoriale legate de serverul web Apache.
/articole-tutoriale-apache/

cPanel
Articole si tutoriale legate de utilizarea si administrarea sistemului de gestiune a serverelor de hosting, cPanel.
/articole-tutoriale-cpanel-whm/

DNS
Vezi toate articolele din categoria DNS
/dns-bind-domain-name-services/

Linux
Articole si tutoriale legate de Linux, sisteme BSD sau alte sisteme de operare din familia UNIX.
/articole-tutoriale-linux/

Mail
Vezi toate articolele din categoria Mail
/mail/

MySQL
Articole si tutoriale despre serverul de baze de date MySQL.
/articole-tutoriale-optimizare-mysql/

Perl
Vezi toate articolele din categoria Perl
/perl-practical-extraction-and-report-language/

PHP
Vezi toate articolele din categoria PHP
/php-language-hypertext-preprocessor/

Virtualizare
Articole si tutoriale despre virtualizare si sistemel virtuale create cu Xen sau OpenVZ.
/virtualizare-xen-openvz/

Webmin / Virtualmin
Articole si tutoriale legate de sistemul de gestiune gratuit Webmin sau modulul Virtualmin.
/webmin-virtualmin/





Newsletter
LAMP Recomandã
NetHelp
SRV.ro
ABCDomenii