Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не вывести курс кроны
 
 автор: xray   (22.10.2007 в 16:02)   письмо автору
 
 

Вроде бы все просто, используя скрипт с данного сайта, взял данные для валют Эстонская крона, но не получается вывести.
http://www.cbr.ru/scripts/XML_daily.asp?date_req=22/10/2007&d=1

Помогите, где ошибка

<?php

  
// Получаем текущие курсы валют в rss-формате с сайта www.cbr.ru

  
$content get_content();

  
// Разбираем содержимое, при помощи регулярных выражений

  
$pattern "#<Valute ID=\"([^\"]+)[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)#i";

  
preg_match_all($pattern$content$outPREG_SET_ORDER);

  
$eek "";

  foreach(
$out as $cur)

  {
    if(
$cur[2] == 233$eek   str_replace(",",".",$cur[4]);

  }

              echo 
"<dd><strong>1&nbsp;EEK&nbsp;</strong>=&nbsp;<span>".$eek." руб.</span></dd>";



  function 
get_content()

  {

    
// Формируем сегодняшнюю дату

    
$date date("d.m.Y");

    
// Формируем ссылку

    
$link "http://www.cbr.ru/scripts/XML_daily.asp?date_req=$date&d=1";

    
// Загружаем HTML-страницу

    
$fd fopen($link"r");

    
$text="";

    if (!
$fd) echo "Запрашиваемая страница не найдена";

    else

    {

      
// Чтение содержимого файла в переменную $text

      
while (!feof ($fd)) $text .= fgets($fd4096);

    }

    
// Закрыть открытый файловый дескриптор

    
fclose ($fd);

    return 
$text;

  }

?>

   
 
 автор: mihdan   (23.10.2007 в 00:59)   письмо автору
 
   для: xray   (22.10.2007 в 16:02)
 

Этот скрипт перестал давно работать так как поменялся xml, если нужно пишите на мыло кину рабочий что стоит на http://www.mashenergy.ru

   
 
 автор: sim5   (23.10.2007 в 06:35)   письмо автору
 
   для: xray   (22.10.2007 в 16:02)
 

Да вот рабочий код с СБР, нужно только соответствующий код валюты выставить, по идее то все должны.

   
 
 автор: xray   (23.10.2007 в 10:39)   письмо автору
 
   для: sim5   (23.10.2007 в 06:35)
 

Да, код рабочий, но Эстонскую крону не выводит

   
 
 автор: xray   (23.10.2007 в 10:53)   письмо автору
 
   для: sim5   (23.10.2007 в 06:35)
 

Понятно, по данному адресу http://www.cbr.ru/scripts/XML_dynamic.asp нет ID="R01795" Эст. кроны


<?php
# Базовый URL скрипта на cbr.ru
$scripturl 'http://www.cbr.ru/scripts/XML_dynamic.asp';

# Начальная дата для запроса  (сегодня - 2 дня)
$date_1=date('d/m/Y'time()-172800);

# Конечная дата (чтобы учитывать завтра добавьте параметр time()+86400)
$date_2=date('d/m/Y');

# Таким образом, мы получим данные либо за 2, либо за 3 последних дня.
# За 2 - если на "сегодня" курс еще не выставили, иначе - за 3

# Код валюты в архиве данных cbr.ru
$currency_code='R01010'// Проверил курс Австралийского долара
?>


Подставил ID Австралийского долара, выводит нормально.
Где выцепить ID кроны?

   
 
 автор: sim5   (23.10.2007 в 11:07)   письмо автору
 
   для: xray   (23.10.2007 в 10:53)
 

На сайте взять xml файл - там все вроде бы есть. Вот у меня старый, ну думаю ID не меняется.

   
 
 автор: xray   (23.10.2007 в 11:23)   письмо автору
 
   для: sim5   (23.10.2007 в 11:07)
 

Может я не тот XML беру, но уже не пойму какой, или в данном случае, не правильно адрес разбирается с помощью рег. выражения

<?
# Начальная дата для запроса  (сегодня - 2 дня)
$date_1=date('d/m/Y'time()-172800);

# Конечная дата (чтобы учитывать завтра добавьте параметр time()+86400)
$date_2=date('d/m/Y');

# Базовый URL скрипта на cbr.ru
$scripturl 'http://www.cbr.ru/scripts/XML_daily.asp?date_req=$date_2&d=1';

# Таким образом, мы получим данные либо за 2, либо за 3 последних дня.
# За 2 - если на "сегодня" курс еще не выставили, иначе - за 3

# Код валюты в архиве данных cbr.ru
$currency_code='R01795';

# URL для запроса данных
$requrl "{$scripturl}?date_req1={$date_1}&date_req2={$date_2}&VAL_NM_RQ={$currency_code}";
?>

   
 
 автор: sim5   (23.10.2007 в 11:30)   письмо автору
 
   для: xray   (23.10.2007 в 11:23)
 

То что я прикрепил, это файл XML_val1.asp взятый с ЦРБ. Но брал я его очень давно. Меня интересует доллар и евро, получаю из XML_dynamic.asp.

   
 
 автор: xray   (23.10.2007 в 11:03)   письмо автору
 
   для: sim5   (23.10.2007 в 06:35)
 

На ЦБ все вроде все написано, как реализовать?

Получение данных, используя XML

Example 1
Например, для получения котировок на заданный день
http://www.cbr.ru/scripts/XML_daily.asp?date_req=02/03/2002
date_req= Date of query (dd/mm/yyyy)
* если параметр(date_req) отсутствует, то Вы получите документ на последнюю зарегистрированную дату.
-- Справочник по кодам валют: http://www.cbr.ru/scripts/XML_val.asp?d=0
d=0 Коды валют устанавливаемые ежедневно.
d=1 Коды валют устанавливаемые ежемесячно.
http://www.cbr.ru/scripts/XML_daily.asp?date_req=02/03/2002&d=1 - котировоки валют устанавливаемые ежемесячно.

   
 
 автор: sim5   (23.10.2007 в 11:23)   письмо автору
 
   для: xray   (23.10.2007 в 11:03)
 

Ну тогда на ЦБ надо. Там насколько помню есть страница, где указано из каких ресурсов все выцепить можно. Я лично там давно уже не был.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования