Парсинг курсов валют цбр

R
На сайте с 01.12.2012
Offline
86
1243

Всем привет.

Нашел простенький парсер погоды с сайта cbr.ru

<?php

function valuta($id){
$cache=0;
$time_cache=10800; // время жизни кеша
$time = time();
if(file_exists($id)){
$str = file_get_contents($id);
$str = explode(":", $str);
if($str[0]<$time) {
$cache=1;
}
else{
return $str[1];
}
}
else{
$cache=1;
}
if($cache==1){
$date = date("d/m/Y");
$link = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=$date";
$str = file_get_contents ($link);
preg_match('#<Valute ID="'.$id.'">.*?.<Value>(.*?)</Value>.*?</Valute>#is', $str, $value);
preg_match('#<Valute ID="'.$id.'">.*?.<CharCode>(.*?)</CharCode>.*?</Valute>#is', $str, $code);
if($value[1]!=''){
$write = $code[1].' '.$value[1];
file_put_contents($id, $time+$time_cache.':'.$write);
return $write;
}
}
}
echo valuta('R01239');
echo "&nbsp;&nbsp;&nbsp;&nbsp;";
echo valuta('R01235');
?>

Код вроде работает нормально, однако хотелось бы ещё чтоб он выводил курс Польского злота.

Помогите доработать. И может что ещё посоветуете здесь исправить?

Заранее признателен за подсказку.

---------- Добавлено 22.06.2016 в 23:15 ----------

С польским злотым разобрался

добавил внизу echo valuta('R01565');

Пост с данным кодом был добавлен аж 5 лет назад.

Может посоветуете чего доработать?

M
На сайте с 15.03.2012
Offline
128
#1

Если код выполняет свои функции, то зачем вам чего-то дорабатывать

S3
На сайте с 29.03.2012
Offline
367
#2

Пока цэбэрэ не меняет формат вывода - чего и код трогать? Все там просто и оптимально, имхо.

Но вообще даже наш нищий беларуский цб сделал для вебмастеров доступ к xml и json, что в разы приятнее обрабатывать

А вообще оригинально у вас ПОГОДА измеряется))))

TF-Studio
На сайте с 17.08.2010
Offline
334
#3

Автор скрипта извращуга. (preg_match // xml)

ЦБР дает их в xml

http://www.cbr.ru/scripts/XML_daily.asp

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).
S3
На сайте с 29.03.2012
Offline
367
#4
TF-Studio:
Автор скрипта извращуга. (preg_match // xml)
ЦБР дает их в xml
http://www.cbr.ru/scripts/XML_daily.asp

Это точно)) Но вот я зашел и сходу не смог найти там отсылку на XML

Сразу видно диз от Темы)))

TF-Studio
На сайте с 17.08.2010
Offline
334
#5

писал обновление на сайт. поиск апи занял 5 минут, столько же написание крон-задачи и кеширование результатов.

есть небольшой класс, который позволяет удобно работать с ним.

Ничего же сложного тут

Оксиген
На сайте с 30.07.2006
Offline
444
#6

Интересно другое: на сайте ЦБР стоит курс на 23 июня, в XML файле сейчас (на момент написания этого сообщения) та же дата. Но уже примерно с 12:00 МСК на других сайтах висит курс на завтра: 64.3212. Откуда они его вытаскивают?

Магазин готовых сайтов (https://www.bdb.ru/shop/) Продление доменов в RU-CENTER по партнерским тарифам.
TF-Studio
На сайте с 17.08.2010
Offline
334
#7

текущий курс и будет завтра утром.

он ещё и течении дня, в течении торгов меняется

Оксиген
На сайте с 30.07.2006
Offline
444
#8

TF-Studio, не меняется он уже после 12. В том то и дело, что курс на завтра становится известен между 11 и 12 часами, а на сайте ЦБР он появляется на несколько часов позже. Сегодня появился после 14, в некоторые дни вообще только после 16 выходит.

orphelin
На сайте с 02.07.2006
Offline
261
#9

я как-то лет 10 назад, когда еще только осваивал пхп, напиcал парсер курсов с cbr, до сих пор работает)

C
На сайте с 26.10.2013
Offline
54
#10
Оксиген:
Интересно другое: на сайте ЦБР стоит курс на 23 июня, в XML файле сейчас (на момент написания этого сообщения) та же дата. Но уже примерно с 12:00 МСК на других сайтах висит курс на завтра: 64.3212. Откуда они его вытаскивают?

Я не совсем уверен, что сейчас пишу не чушь, но если завтра (24.06.2016) в 11-12 МСК запросить файл с датой следующего дня ( http://www.cbr.ru/scripts/XML_daily.asp?date_req=25/06/2016 ), так не сработает? Сейчас уже не проверить, курс стоит на завтра

Услуги по парсингу данных (/ru/forum/939826), единоразовый и регулярный сбор данных. Любые объемы. Скрипты на PHP, создание и доработка, решение проблем с сайтами Пишите в личные сообщения или скайп

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий