Сен 1

s_http: Получаем курсы валют с ЦБ России

Рубрики: Php  Количество просмотров: 2 749

Нужно было с сайта центрального банка России парсить курсы валют. Задачу решил минут за 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">(.+?)&nbsp;<\/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>(.+?)&nbsp;/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.

Другие статьи автора

Комментарии

  1. Цитировать inews

    Так конечно тоже можно, но банк предоставляет кучу веб-сервисов, отдающих данные в XML.
    http://www.cbr.ru/scripts/Root.asp?Prtid=SXML

  2. Цитировать Андрей

    ЦБ отдает х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

  3. Цитировать Samborsky

    Мда.. признаюсь – облажался, что-то искал я XML, но не нашел (
    Придется переписать

  4. Цитировать дядя Фридрих

    Хотел написать про XML – опередили :)
    Я в свое время писал на кроне штуку которая парсит XML, только для Нацбанка Беларуси. Вещь простая, единственное с чем повозится надо так это с определением праздничных дней, т.к. на них XML банк не выдает поскольку курсы не меняются.

  5. Цитировать barmen

    Один маленький вопрос… Как указать referer?

Добавить комментарий