Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: X технологии > Выбор из XML нескольких значений.


Автор: Guedda 3.12.2007, 14:45
Добрый день, господа и дамы программисты/программистки. У меня встал неожиданно вопрос, который я ни разу не решал за свою карьеру программиста.
Есть xml-файл: http://www.cbr.ru/scripts/XML_daily.asp?date_req=03/12/2007
мне из него необходимо выдрать курс доллара и евро. 
Подскажите, как это реализовать (или хотя бы, в какую сторону копать)? Заранее благодарен.

Автор: Guedda 3.12.2007, 15:11
Решение нашел быстро:
Код


<?php 

  $content = get_content(); 

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

  preg_match_all($pattern, $content, $out, PREG_SET_ORDER); 

  $dollar = ""; 

  $euro = ""; 

  foreach($out as $cur) 

  { 

    if($cur[2] == 840) $dollar = str_replace(",",".",$cur[4]); 

    if($cur[2] == 978) $euro   = str_replace(",",".",$cur[4]); 

  } 

  echo "Доллар - ".$dollar."<br>"; 

  echo "Евро - ".$euro."<br>"; 

  function get_content() 

  { 


    $date = date("d/m/Y"); 

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

    $fd = fopen($link, "r"); 

    $text=""; 

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

    else 

    { 

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

    } 

    fclose ($fd); 

    return $text; 

  } 

?>

http://www.softtime.ru/scripts/valute.php

Автор: Nikitozz 12.12.2007, 00:43
я кстати тоже с центробанка катировки вытаскивал, как сделать стандартно не придумал, поэтому создал собственную программу обработки данных. Примерно тоже самое что и у тебя

Автор: skyboy 12.12.2007, 00:55
Цитата(Nikitozz @  11.12.2007,  23:43 Найти цитируемый пост)
как сделать стандартно не придумал

можно через http://php.net/xml, можно - через http://php.net/dom

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)