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 :: xml2array

 PHP.SU

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


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

> Описание: Парсинг курса валют
criaton
Отправлено: 09 Марта, 2012 - 17:12:21
Post Id


Гость


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


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




CODE (htmlphp):
скопировать код в буфер обмена
  1. <? $xml_file = DIR_SERVER_DIR . 'currency_rates.xml';
  2.  
  3. if (filemtime($xml_file)+3600*6 < time() OR !file_exists($xml_file)) { // Проверяем обновление каждые 6 часов
  4.   $xml_data = file_get_contents("http://www.cbr.ru/scripts/XML_daily.asp?date_req=" . date("d/m/Y") . "");
  5.   if ($xml_data) {
  6.      file_put_contents($xml_file, $xml_data);
  7.      $data = xml2array($xml_data);
  8.      $data_values = array();
  9.      $data_nominal = array();
  10.      foreach ($data['ValCurs']['Valute'] as $valute) {
  11.         $data_values[$valute['CharCode']['value']] = str_replace(",", ".", $valute['Value']['value']);
  12.         $data_nominal[$valute['CharCode']['value']] = $valute['Nominal']['value'];
  13.      }
  14.      if (CModule::IncludeModule("currency") AND date("N") != 6 AND date("N") != 7 AND $data) { // Не обновляем курс валют по выходным
  15.         $currencies = array();
  16.         $rsCurrency = CCurrency::GetList($by, $order);
  17.         $base_currency = CCurrency::GetBaseCurrency();
  18.         while ($arCurrency = $rsCurrency->GetNext()) {
  19.            if ($arCurrency['CURRENCY'] != $base_currency) {
  20.               $arCurrency['TIMESTAMP'] = MakeTimeStamp($arCurrency['DATE_UPDATE'], "YYYY-MM-DD HH:MI:SS");
  21.               $r = CCurrencyRates::Add(array(
  22.                  'CURRENCY' => $arCurrency['CURRENCY'],
  23.                  'DATE_RATE' => $data['ValCurs']['attr']['Date'],
  24.                  'RATE_CNT' => $data_nominal[$arCurrency['CURRENCY']],
  25.                  'RATE' => $data_values[$arCurrency['CURRENCY']],
  26.               ));
  27.            }
  28.         }
  29.      }
  30.   }
  31. }
  32.  
  33. ?>


Во время создания файла xml, который создается, выходит ошибка:

Call to undefined function xml2array() in currency_rates.php on line 7

(Отредактировано автором: 09 Марта, 2012 - 17:16:49)

 
 Top
LIME
Отправлено: 09 Марта, 2012 - 17:21:22
Post Id


Активный участник


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


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




нет такой стандартной ф-ции
но ее описание можно найти во 2ом примере http://ru.php.net/manual/ru/func...on.xml-parse.php
 
 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