File: /var/www/ilya/data/www/korunka.ru/modules/services/get_rates.php
<?
function get_rates_cbr($currency_id,$currency_cbr_id,$currency_amount,$start_date,$end_date) {
$source = file_get_contents("http://www.cbr.ru/currency_base/dynamics/?UniDbQuery.Posted=True&UniDbQuery.mode=1&UniDbQuery.date_req1=&UniDbQuery.date_req2=&UniDbQuery.VAL_NM_RQ=".$currency_cbr_id."&UniDbQuery.From=".$start_date."&UniDbQuery.To=".$end_date);
$source = explode("<th>Курс</th>", $source);
$source = explode("</table>", $source[1]);
$source = explode("<tr>", $source[0]);
foreach($source as $row) {
//$row = explode("<td align=\"center\">",$row);
//$row = explode("</tr>",$row[1]);
$row = explode("<td>10</td>",$row); // 0 - date; 1 - amount; 2 - value
$value_date = strip_tags(preg_replace( "/\r|\n/", "",$row[0]));
$value_date = preg_replace("/\s+/", '',$value_date);
$value_date = preg_replace("/(\d+).(\d+).(\d+)/i","\$3-\$2-\$1",$value_date);
$value = str_replace(",",".",$row[1]);
$value = strip_tags(preg_replace( "/\r|\n/", "",$value));
$value = preg_replace("/\s+/", '',$value);
//$value = ($currency_amount*str_replace(",",".",$row[2]))/$row[1];
//print $value_date." - ".$value."<br>";
if(($value_date!='') && ($value!='')) {
$check = query("SELECT * FROM `values` WHERE `date`='".$value_date."' AND `currency`='".$currency_id."';");
if(mysql_num_rows($check)) {
print "UPDATE `values` SET `value_cbr`='".$value."' WHERE `currency`='".$currency_id."' AND `date`='".$value_date."';";
query("UPDATE `values` SET `value_cbr`='".$value."' WHERE `currency`='".$currency_id."' AND `date`='".$value_date."';");
}
else {
print "INSERT INTO `values` (`date`,`currency`,`value_cbr`) VALUES('".$value_date."','".$currency_id."','".$value."');";
query("INSERT INTO `values` (`date`,`currency`,`value_cbr`) VALUES('".$value_date."','".$currency_id."','".$value."');");
}
}
}
//print $source[0];
}
function get_rates_cnb($currency_id,$currency_cnb_id,$start_date,$end_date) {
$source = file_get_contents("http://www.cnb.cz/miranda2/m2/cs/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/vybrane.html?mena=".$currency_cnb_id."&od=".$start_date."&do=".$end_date);
$source = explode("<tr><th>Datum</th><th>Kurz</th></tr>\n<tr>", $source);
$source = explode("</table>", $source[1]);
$source = explode("<tr>", $source[0]);
foreach($source as $row) {
$row = explode("<td class=\"w50\">",$row);
$row = explode("</td></tr>",$row[1]);
$row = explode("</td><td class=\"w50\" align=\"right\">",$row[0]); // 0 - date; 1 - value
$value_date = preg_replace("/(\d+).(\d+).(\d+)/i","\$3-\$2-\$1",$row[0]);
if($currency_id==3)
$value = 1000/str_replace(",",".",$row[1]);
else
$value = str_replace(",",".",$row[1]);
print $value_date." - ".$value."<br>";
$check = query("SELECT * FROM `values` WHERE `date`='".$value_date."' AND `currency`='".$currency_id."';");
if(mysql_num_rows($check))
query("UPDATE `values` SET `value_cnb`='".$value."' WHERE `currency`='".$currency_id."' AND `date`='".$value_date."';");
else
query("INSERT INTO `values` (`date`,`currency`,`value_cnb`) VALUES('".$value_date."','".$currency_id."','".$value."');");
}
//print $source[0];
}
$result = query("SELECT * FROM `currencies` WHERE id=3;");
while($data = mysql_fetch_array($result)) {
$end_date = date("d.m.Y",TIME+86400);
$start_date = preg_replace("/(\d+)-(\d+)-(\d+)/i","\$3.\$2.\$1",$data['start_date']);
//get_rates_cbr($data['id'],$data['cbr_id'],$data['amount'], $start_date,$end_date);
//get_rates_cnb($data['id'],$data['cnb_id'],$start_date,$end_date);
get_rates_cbr($data['id'],$data['cbr_id'],$data['amount'], $start_date,$end_date);
get_rates_cnb($data['id'],$data['cnb_id'],$start_date,$end_date);
}
//$start_date = date("d.m.Y",TIME-604800);
//get_rates_cnb(3,"RUB",$start_date,$end_date);
//get_rates_cbr($data['id'],$data['cbr_id'],$data['amount']);
// start dates: USD - 01.01.2001; EUR - 01.01.1999; RUB - 01.01.2005
query("DELETE FROM `values` WHERE `date`='0000-00-00'");
?>