О web-разработке
и даже немного больше...

Парсинг курса валют национального банка Казахстана

kurs-valutИногда в проектах возникает необходимость получить текущий курс валют, как правило, делается это путем парсинга данных из каких-либо достоверных источников. Рассмотрим простой, но эффективный пример парсинга данных с сайта национального банка Казахстана. Данные, которые мы будем парсить представлены в виде XML, что значительно упрощает задачу.

Ссылка на RSS:

http://www.nationalbank.kz/rss/rates_all.xml

Данные в файле rates_all.xml имеют такую структуру:

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<generator>Alternate RSS Builder</generator>
		<title>Official exchange rates of National Bank of Republic Kazakhstan</title>
		<link>www.nationalbank.kz</link>
		<description>Official exchange rates of National Bank of Republic Kazakhstan</description>
		<language>ru</language>
		<copyright>www.nationalbank.kz</copyright>
		<item>
			<title>AUD</title>
			<pubDate>26.11.14</pubDate>
			<description>154.72</description>
			<quant>1</quant>
			<index>DOWN</index>
			<change>-1.46</change>
			<link />
		</item>
…
	</channel>
</rss>

Нужные данные в этом документе мы будем получать из узла item.
Обратите внимание, что для получения данных мы будем использовать библиотеку SimpleXML.

Код функции:

function getRates(){
$url = "http://www.nationalbank.kz/rss/rates_all.xml";
$dataObj = simplexml_load_file($url);
	if ($dataObj){
	foreach ($dataObj->channel->item as $item){
		echo "title: ".$item->title."<br>";
		echo "pubDate: ".$item->pubDate."<br>";
		echo "description: ".$item->description."<br>";;
		echo "quant: ".$item->quant."<br>";
		echo "index: ".$item->index."<br>";
		echo "change: ".$item->change."<br>";
	}
}
}

Обращаемся к функции:

getRates();

В результате будет получен список с данными о курсе валют по отношению к тенге. Визуально оформлять не стал специально, дабы не добавлять в примере лишнего. Думаю вы справитесь с этим сами, успехов.

Опубликован: 26.11.2014 г.

См. также:

Редакторы кода для PHP
Как просмотреть время загрузки страницы в PHP?
Генерация QR-кода в PHP
Загрузка файлов на сервер посредством Ajax
Импорт записей из Excel в WordPress
Парсинг XML в PHP
Установка IonCube на XAMPP
Создание PDF файлов в PHP

Комментарии

  1. Finansist пишет:

    Спасибо за статью брателло !

  2. Guest пишет:

    Благодарочка тебе добрый человек! Помог!

  3. Developer пишет:

    Огромнейшее спасибо! Выручил!

  4. Ник пишет:

    Здравствуйте. А можете показать пример вывода для какой-нибудь одной отдельной валюты?

    1. htmaker пишет:

      Здравствуйте, можно вместо цикла foreach обратиться по нужному ключу.

      function getRates(){
      	$url = "http://www.nationalbank.kz/rss/rates_all.xml";
      	$dataObj = simplexml_load_file($url);
      		if ($dataObj){
      		$item = $dataObj->channel->item[0]; // подставляем нужный ключ 0,1,2 и т.д.
      		//foreach ($dataObj->channel->item as $item){
      			echo "title: ".$item->title."<br>";
      			echo "pubDate: ".$item->pubDate."<br>";
      			echo "description: ".$item->description."<br>";;
      			echo "quant: ".$item->quant."<br>";
      			echo "index: ".$item->index."<br>";
      			echo "change: ".$item->change."<br>";
      		//}
      	}
      }
      
      getRates();
      
  5. Ник пишет:

    Спасибо.

  6. Ерчик пишет:

    Как этот код выполнить на странице сайта Вордпресс!!! Чайник в этих делах. Хочу создать отдельную страницу с курсами валют. А как это все осуществить и подключить? хотя бы вкратце...Заранее благодарю!

  7. htmaker пишет:

    Можно создать свой виджет, и подключить его на нужной странице.
    Создаётся не сложно, есть пример тут.

  8. Ваня Уткин пишет:

    Спасибо. Подскажите как вывести две записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Комментарии
  • Загрузка...
Друзья сайта