Hai sa fim practici!
RSS icon Email icon Home icon
  • PHP si MYSQL Curs valutar automat EUR/USD – Sursa BNR

    Posted on September 22nd, 2009 admin 3 comments

    Am scris acest articol deoarece cred ca ar putea fi folositor.  “Scriptul” consta intro functie si un tabel care este foarte simplu: ia cursul de schimb de pe http://www.bnr.ro/nbrfxrates.xml numai pentru moneda EURO si USD si le stocheaza intro baza de date.

    De ce?

    Informaţiile preluate trebuie stocate la nivelul aplicaţiei de preluare pentru a evita generarea de trafic redundant. IP-urile care generează un volum de trafic disproporţionat de mare vor fi restricţionate administrativ. Pentru restabilirea accesului puteţi semnala remedierea situaţiei pe adresa de webmaster.

    • evitarea traficului inutil
    • timpi de incarcare si raspuns a paginilor mai bun
    • mai gasiti si voi.

    Uitati si functia:

    function get_rate() {

    $rate['curdate'] = date(“Y-m-d”);

    $query = mysql_query(“SELECT `eur`, `usd` FROM `cms_rate` WHERE `data`=’”.$rate['curdate'].”‘”);

    if (mysql_num_rows($query) == 0) {
    $xml=@file_get_contents(‘http://www.bnr.ro/nbrfxrates.xml’, FILE_BINARY);

    if(!$xml){return 0;}
    preg_match(‘/”EUR”>(.*)<\/Rate>/’, $xml, $eur);
    preg_match(‘/”USD”>(.*)<\/Rate>/’, $xml, $usd);

    $rate['eur'] = $eur[1];
    $rate['usd'] = $usd[1];

    $up = mysql_query(“INSERT INTO `cms_rate` (`data`, `eur`, `usd`) VALUES(‘”.$rate['curdate'].”‘,’”.$rate['eur'].”‘,’”.$rate['usd'].”‘)”);

    return $rate;

    } else {

    $res = mysql_fetch_assoc($query);
    $rate['usd'] = $res['usd'];
    $rate['eur'] = $res['eur'];
    return $rate;
    }

    Structura tabelului de date:

    SET SQL_MODE=”NO_AUTO_VALUE_ON_ZERO”;

    – ——————————————————–


    – Table structure for table `cms_rate`

    CREATE TABLE IF NOT EXISTS `cms_rate` (
    `id` int(11) NOT NULL auto_increment,
    `data` date NOT NULL,
    `eur` double NOT NULL,
    `usd` double NOT NULL,
    PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;


    – Dumping data for table `cms_rate`

    INSERT INTO `cms_rate` (`id`, `data`, `eur`, `usd`) VALUES
    (10, ’2009-09-22′, 4.2665, 2.9123);

    Connexiunea la baza de date o las in seama voastra.

    Success!