РЕШЕНО Помогите с выводом текста

  • Автор темы StenMarsh
  • Дата начала
StenMarsh
Участник
Сообщения
4
Реакции
0
PHP:
<?php
  $date = date("d/m/Y"); // Сегодняшняя дата в необходимом формате
  $link = "http://bank-ua.com/export/currrate.xml?date_req=$date"; // Ссылка на XML-файл с курсами валют
  $content = file_get_contents($link); // Скачиваем содержимое страницы
  $dom = new domDocument("1.0", "cp1251"); // Создаём DOM
  $dom->loadXML($content); // Загружаем в DOM XML-документ
  $root = $dom->documentElement; // Берём корневой элемент
  $childs = $root->childNodes; // Получаем список дочерних элементов
  $data = array(); // Набор данных
  for ($i = 0; $i < $childs->length; $i++) {
    $childs_new = $childs->item($i)->childNodes; // Берём дочерние узлы
    for ($j = 0; $j < $childs_new->length; $j++) {
      /* Ищем интересующие нас валюты */
      $el = $childs_new->item($j);
      $code = $el->nodeValue;
      if (($code == "USD") || ($code == "EUR")) $data[] = $childs_new; // Добавляем необходимые валюты в массив
    }
  }
  /* Перебор массива с данными о валютах */
  for ($i = 0; $i < count($data); $i++) {
    $list = $data[$i];
    for ($j = 0; $j < $list->length; $j++) {
      $el = $list->item($j);
      /* Выводим курсы валют */
      if ($el->nodeName == "char3") echo $el->nodeValue." - ";
      elseif ($el->nodeName == "rate") echo $el->nodeValue." грн.<br />";
    }
  }
?>
Вот что получается

7370

Помогите чтобы курс отображался EUR - 27,74 грн.
USD - 25,14 грн.
 
kolyaka105
Участник
Сообщения
6
Реакции
1
Код:
sprintf("%01.2f", $el->nodeValue);
 
StenMarsh
Участник
Сообщения
4
Реакции
0
7371

Мне нужно запятную между 27 и 74 а что дальше убрать))
Оно то сделало сумму как валюту но не так
 
StenMarsh
Участник
Сообщения
4
Реакции
0
PHP:
<?php
  $date = date("d/m/Y"); // Сегодняшняя дата в необходимом формате
  $link = "http://bank-ua.com/export/currrate.xml?date_req=$date"; // Ссылка на XML-файл с курсами валют
  $content = file_get_contents($link); // Скачиваем содержимое страницы
  $dom = new domDocument("1.0", "cp1251"); // Создаём DOM
  $dom->loadXML($content); // Загружаем в DOM XML-документ
  $root = $dom->documentElement; // Берём корневой элемент
  $childs = $root->childNodes; // Получаем список дочерних элементов
  $data = array(); // Набор данных
  for ($i = 0; $i < $childs->length; $i++) {
    $childs_new = $childs->item($i)->childNodes; // Берём дочерние узлы
    for ($j = 0; $j < $childs_new->length; $j++) {
      /* Ищем интересующие нас валюты */
      $el = $childs_new->item($j);
      $code = $el->nodeValue;
      if (($code == "USD") || ($code == "EUR")) $data[] = $childs_new; // Добавляем необходимые валюты в массив
    }
  }
  /* Перебор массива с данными о валютах */
  for ($i = 0; $i < count($data); $i++) {
    $list = $data[$i];
    for ($j = 0; $j < $list->length; $j++) {
      $el = $list->item($j);
      /* Выводим курсы валют */
      if ($el->nodeName == "char3") echo $el->nodeValue." - ";
      elseif ($el->nodeName == "rate") echo sprintf("%01.2f", $el->nodeValue)." грн.<br />";
    }
  }
?>
Может я не туда вставил и не верно отображает?
 
Invictus
Участник
Сообщения
14
Реакции
5
StenMarsh написал(а):
PHP:
<?php
  $date = date("d/m/Y"); // Сегодняшняя дата в необходимом формате
  $link = "http://bank-ua.com/export/currrate.xml?date_req=$date"; // Ссылка на XML-файл с курсами валют
  $content = file_get_contents($link); // Скачиваем содержимое страницы
  $dom = new domDocument("1.0", "cp1251"); // Создаём DOM
  $dom->loadXML($content); // Загружаем в DOM XML-документ
  $root = $dom->documentElement; // Берём корневой элемент
  $childs = $root->childNodes; // Получаем список дочерних элементов
  $data = array(); // Набор данных
  for ($i = 0; $i < $childs->length; $i++) {
    $childs_new = $childs->item($i)->childNodes; // Берём дочерние узлы
    for ($j = 0; $j < $childs_new->length; $j++) {
      /* Ищем интересующие нас валюты */
      $el = $childs_new->item($j);
      $code = $el->nodeValue;
      if (($code == "USD") || ($code == "EUR")) $data[] = $childs_new; // Добавляем необходимые валюты в массив
    }
  }
  /* Перебор массива с данными о валютах */
  for ($i = 0; $i < count($data); $i++) {
    $list = $data[$i];
    for ($j = 0; $j < $list->length; $j++) {
      $el = $list->item($j);
      /* Выводим курсы валют */
      if ($el->nodeName == "char3") echo $el->nodeValue." - ";
      elseif ($el->nodeName == "rate") echo sprintf("%01.2f", $el->nodeValue)." грн.<br />";
    }
  }
?>
Может я не туда вставил и не верно отображает?
/* Выводим курсы валют */
if ($el->nodeName == "char3") echo $el->nodeValue." - ";
elseif ($el->nodeName == "rate") echo sprintf("%0.2f", ($el->nodeValue)/100)." грн.<br />";
 
Invictus
Участник
Сообщения
14
Реакции
5
7372
 
StenMarsh
Участник
Сообщения
4
Реакции
0
Спасибо огромное
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
Telegram
pligin
StenMarsh написал(а):
PHP:
<?php
  $date = date("d/m/Y"); // Сегодняшняя дата в необходимом формате
  $link = "http://bank-ua.com/export/currrate.xml?date_req=$date"; // Ссылка на XML-файл с курсами валют
  $content = file_get_contents($link); // Скачиваем содержимое страницы
  $dom = new domDocument("1.0", "cp1251"); // Создаём DOM
  $dom->loadXML($content); // Загружаем в DOM XML-документ
  $root = $dom->documentElement; // Берём корневой элемент
  $childs = $root->childNodes; // Получаем список дочерних элементов
  $data = array(); // Набор данных
  for ($i = 0; $i < $childs->length; $i++) {
    $childs_new = $childs->item($i)->childNodes; // Берём дочерние узлы
    for ($j = 0; $j < $childs_new->length; $j++) {
      /* Ищем интересующие нас валюты */
      $el = $childs_new->item($j);
      $code = $el->nodeValue;
      if (($code == "USD") || ($code == "EUR")) $data[] = $childs_new; // Добавляем необходимые валюты в массив
    }
  }
  /* Перебор массива с данными о валютах */
  for ($i = 0; $i < count($data); $i++) {
    $list = $data[$i];
    for ($j = 0; $j < $list->length; $j++) {
      $el = $list->item($j);
      /* Выводим курсы валют */
      if ($el->nodeName == "char3") echo $el->nodeValue." - ";
      elseif ($el->nodeName == "rate") echo $el->nodeValue." грн.<br />";
    }
  }
?>
Вот что получается

Посмотреть вложение 7370
Помогите чтобы курс отображался EUR - 27,74 грн.
USD - 25,14 грн.
у тебя отображается все верно - в том документе xml указаны именно такие курсы...
я не понимаю в чем проблема?
если ты сам делаешь курсы валют, то какой смысл их парсить?
другой пример реализации, обычный массив
PHP:
$list = array();
$xml = simplexml_load_file('compress.zlib://http://bank-ua.com/export/currrate.xml') or die("Error: Cannot create object");
$arr = json_decode(json_encode($xml),1);
foreach ($arr['item'] as $currency) {
    $list[$currency['char3']] = $currency['rate'];
}
//echo '<pre>';
//print_r($list);
7373
 
Сверху