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
Форумы портала PHP.SU :: Версия для печати :: xml2array
Форумы портала PHP.SU » PHP » Программирование на PHP » xml2array

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

1. criaton - 09 Марта, 2012 - 17:12:21 - перейти к сообщению
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
2. LIME - 09 Марта, 2012 - 17:21:22 - перейти к сообщению
нет такой стандартной ф-ции
но ее описание можно найти во 2ом примере http://ru.php.net/manual/ru/func...on.xml-parse.php

 

Powered by ExBB FM 1.0 RC1