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 />";
}
}
?>
Помогите чтобы курс отображался EUR - 27,74 грн.
USD - 25,14 грн.
kolyaka105
Участник
- Сообщения
- 6
- Реакции
- 1
StenMarsh
Участник
- Сообщения
- 4
- Реакции
- 0
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
у тебя отображается все верно - в том документе xml указаны именно такие курсы...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 грн.
я не понимаю в чем проблема?
если ты сам делаешь курсы валют, то какой смысл их парсить?
другой пример реализации, обычный массив
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);