Сен 1
s_http: Получаем курсы валют с ЦБ России
Нужно было с сайта центрального банка России парсить курсы валют. Задачу решил минут за 15-20, основное время ушло на формирование регулярки, которая тянет цифры. Всю работу c Curl делает за меня мой класс s_http.

Исходник:
$http = new s_http(); $http->init();
if( $http->get('http://cbr.ru') ){
$cources = array(
'now_usd' => 'не известен',
'tommorow_usd' => 'не известен',
'now_eur' => 'не известен',
'tommorow_eur' => 'не известен'
);
if( preg_match_all('/<td class="digit" align="right">(.+?) <\/td>/i',$http->data,$out,PREG_PATTERN_ORDER) ){
$cources['now_usd'] = $out[1][0];
$cources['now_eur'] = $out[1][1];
}
if( preg_match_all('/<td class="digit" align="right" nowrap>(.+?) /i',$http->data,$out,PREG_PATTERN_ORDER) ){
$cources['tommorow_usd'] = $out[1][0];
$cources['tommorow_eur'] = $out[1][1];
}
}
Все. В массиве $cources цифры, которые можно встраивать в вашу страницу. Если будете юзать, не забывайте про кеш. Я скачиваю главную ЦБ раз в 6 часов, чаще не вижу смысла. Можно в принципе и на крон поставить.
———-
famous russian people
Какая погода в одессе? Узнай на сайте nsk-group.
Другие статьи автора


Так конечно тоже можно, но банк предоставляет кучу веб-сервисов, отдающих данные в XML.
http://www.cbr.ru/scripts/Root.asp?Prtid=SXML
ЦБ отдает хml , единственное что два файла придется забрать: либо по двум дням
_http://www.cbr.ru/scripts/XML_daily.asp?date_req=01/09/2009
_http://www.cbr.ru/scripts/XML_daily.asp?date_req=02/09/2009
либо по двум валютам
_http://www.cbr.ru/scripts/XML_dynamic.asp?date_req1=01/09/2009&date_req2=02/09/2009&VAL_NM_RQ=R01235
_http://www.cbr.ru/scripts/XML_dynamic.asp?date_req1=01/09/2009&date_req2=02/09/2009&VAL_NM_RQ=R01239
Мда.. признаюсь – облажался, что-то искал я XML, но не нашел (
Придется переписать
Хотел написать про XML – опередили
Я в свое время писал на кроне штуку которая парсит XML, только для Нацбанка Беларуси. Вещь простая, единственное с чем повозится надо так это с определением праздничных дней, т.к. на них XML банк не выдает поскольку курсы не меняются.
Один маленький вопрос… Как указать referer?