Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Парсинг XML файла через PHP

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Для курса валют
criaton
Отправлено: 05 Февраля, 2012 - 12:18:08
Post Id


Гость


Покинул форум
Сообщений всего: 93
Дата рег-ции: Февр. 2010  


Помог: 0 раз(а)




На своем сервере в корневой директории лежит оригинал файл: currency_rates.xml

спарсенный с сайта: http://www[dot]cbr[dot]ru/scripts/XML_daily[dot]asp

Вот код, который вытаскивал значения когда файл был на сервере ЦБ,

что нудно в нем изменить чтобы данные парсились уже со своего сервера

CODE (htmlphp):
скопировать код в буфер обмена
  1.   $dater = date("d/m/Y");
  2.  
  3. $code_usd='R01235';
  4. $code_eur='R01239';
  5.  
  6. $file = file_get_contents("http://www.cbr.ru/scripts/XML_daily.asp?date_req=".$dater);
  7.  
  8. preg_match("#<Valute ID=\"" . $code_usd . "\".*?>(.*?)</Valute>#is", $file, $m);
  9.  
  10. preg_match("#<Value>(.*?)</Value>#is", $m[1], $r);
  11.  
  12. preg_match("#<Valute ID=\"" . $code_eur . "\".*?>(.*?)</Valute>#is", $file, $n);
  13.  
  14. preg_match("#<Value>(.*?)</Value>#is", $n[1], $p);
  15.  
  16. $dollar = str_replace(",", ".", $r[1]);
  17.  
  18. $euro = str_replace(",", ".", $p[1]);
 
 Top
voskan
Отправлено: 05 Февраля, 2012 - 12:21:08
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?PHP
  4.   // Получаем текущие курсы валют в rss-формате с сайта www.cbr.ru
  5.   $content = get_content();
  6.   // Разбираем содержимое, при помощи регулярных выражений
  7.   $pattern = "#<Valute ID=\"([^\"]+)[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)#i";
  8.   preg_match_all($pattern, $content, $out, PREG_SET_ORDER);
  9.   $dollar = "";
  10.   $euro = "";
  11.   foreach($out as $cur)
  12.   {
  13.     if($cur[2] == 840) $dollar = str_replace(",",".",$cur[4]);
  14.     if($cur[2] == 978) $euro   = str_replace(",",".",$cur[4]);
  15.   }
  16.   echo "Доллар - ".$dollar."<br>";
  17.   echo "Евро - ".$euro."<br>";
  18.   function get_content()
  19.   {
  20.     // Формируем сегодняшнюю дату
  21.     $date = date("d/m/Y");
  22.     // Формируем ссылку
  23.     $link = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=$date";
  24.     // Загружаем HTML-страницу
  25.     $fd = fopen($link, "r");
  26.     $text="";
  27.     if (!$fd) echo "Запрашиваемая страница не найдена";
  28.     else
  29.     {
  30.       // Чтение содержимого файла в переменную $text
  31.       while (!feof ($fd)) $text .= fgets($fd, 4096);
  32.     }
  33.     // Закрыть открытый файловый дескриптор
  34.     fclose ($fd);
  35.     return $text;
  36.   }
  37. ?>
  38.  

(Добавление)
вопрос не прочитал, лучше парсить, сохранить к себе и выводить на страницу
 
 Top
Зверь
Отправлено: 05 Февраля, 2012 - 14:55:11
Post Id



Частый гость


Покинул форум
Сообщений всего: 243
Дата рег-ции: Окт. 2011  


Помог: 7 раз(а)




А зачем извращаться с регулярками, если у php целая куча библиотек для работы с xml?

(Отредактировано автором: 05 Февраля, 2012 - 14:57:16)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB