Rose debug info
---------------

Давайте дружить! Я в соц сетях

Курс валют ЦБ РФ за любой период — скрипт PHP

Я написал для себя небольшой скрипт, который парсит данные о курсе валют за любой период. В данном скрипте используется Api ЦБ РФ. Собственно, хочу поделиться им.

<?php
$link = MySQLi_connect("localhost", "login", "password", "database")
or die("<h3>Ошибка подключения к базе данных" . mysql_error() . "</h3>");
$dropTable = MySQLi_query($link, "DROP TABLE valute;");
$createTable = MySQLi_query($link, "CREATE TABLE valute (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
date DATE,
currencyID VARCHAR(15) NOT NULL,
numCode INT(10) NOT NULL,
charCode VARCHAR(15) NOT NULL,
name VARCHAR(100) NOT NULL,
value VARCHAR(20) NOT NULL
);");
//Получаем курсы валют
function getValute($date, $link)
{
    $xmlstring = file_get_contents("http://www.cbr.ru/scripts/XML_daily.asp?date_req=$date");
    $xml = simplexml_load_string($xmlstring);
    $json = json_encode($xml);
    $array = json_decode($json, TRUE);
    $dateNow = $array['@attributes']['Date'];
    $dateNow = strtotime($dateNow); // преобразование строки в  timestamp
    $dateNow = date('Y-m-d', $dateNow); // преобразование  timestamp в строку нужного формата
    echo $dateNow . "<br><br><br><br>";
    for ($i = 0; $i <= 50; $i++) {
        $currencyID = $array['Valute'][$i]['@attributes']['ID'];
        $numCode = $array['Valute'][$i]['NumCode'];
        $charCode = $array['Valute'][$i]['CharCode'];
        $name = $array['Valute'][$i]['Name'];
        $value = $array['Valute'][$i]['Value'];
        if (!$value) {
            break;
        } else {
            $createData = MySQLi_query($link, "INSERT INTO valute (date, currencyID, numCode, charCode, name, value)
 VALUES ('$dateNow', '$currencyID', '$numCode', '$charCode', '$name', '$value');");
            echo "<br>{$currencyID} {$value} {$numCode} {$charCode} {$name}<br>";
        }

    }
}

//собираем данные за 30 дней от текущей даты
for ($i = 0; $i < 30; $i++) {
    $date = date("d/m/Y", mktime(0, 0, 0, date('m'), date('d') - $i, date('Y')));
    getValute($date, $link);
}
?>

В результате мы получим таблицу с данными о курсе валют за последние 30 дней.

Подписаться на блог
Поделиться
Отправить
Запинить
 50   3 мес   Данные   Разработка
Дальше