Парсер курсов валют на PHP

Парсер курсов валют на PHP
PHP скрипты 0    290 0
$

Хочу поделиться с вами решением проблемы, которая у меня возникла в ходе работы над заказом. Необходимо сделать простой парсер курса доллара и евро на PHP. Подтягивать актуальный курс будем с сайта ЦБ .

Способ 1

Самый простой способ с использованием функции simplexml_load_file.

$file = simplexml_load_file("http://www.cbr.ru/scripts/XML_daily.asp?date_req=".date("d/m/Y"));

$xml = $file->xpath("//Valute[@ID='R01235']");
$valute_usd = strval($xml[0]->Value);
echo $valute_usd; // получим курс доллара

echo '
'; $xml = $file->xpath("//Valute[@ID='R01239']"); $valute_euro = strval($xml[0]->Value); echo $valute_euro; // получим курс евро
красная пунктирная линия

Способ 2

Этот способ пригодится для хостингов, у которых отключен allow_url_fopen. В следствии чего возникает ошибка:

Error simplexml_load_file(): wrapper is disabled in the server configuration by allow_url_fopen=0

Можно попросить у хостинга, чтобы они поменяли у себя настройки, но это не всегда возможно, поэтому можно воспользоваться следующим кодом:

$ch = curl_init();	
curl_setopt($ch, CURLOPT_URL, "http://www.cbr.ru/scripts/XML_daily.asp?date_req=".date("d/m/Y"));
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);	
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);


$result = curl_exec($ch);

$xml = $result;
$xml_obj = new SimpleXMLElement($xml);

$xml = $xml_obj->xpath("//Valute[@ID='R01235']"); 
$curs_usd = strval($xml[0]->Value); // получим курс доллара

$xml = $xml_obj->xpath("//Valute[@ID='R01239']"); 
$curs_euro = strval($xml[0]->Value);  // получим курс евро
красная пунктирная линия

Способ 3

Можно также немного модифицировать 1 способ и получить массив с валютами на все случаи жизни:

$file = simplexml_load_file("http://www.cbr.ru/scripts/XML_daily.asp?date_req=".date("d/m/Y"));

$valutes = array();

foreach ($file AS $el){
    $valutes[strval($el->CharCode)] = strval($el->Value);
}
print_r($valutes);

Похожие статьи:

Парсер на PHP с записью контента в БД
Разрабатываем exploit
Удобная форма обратной связи без перезагрузки страницы
Счетчик онлайн посетителей на сайте
Пишем на SQL без SQL: основы по RedBean PHP
Защищенная Авторизация и Регистрация на PHP + MySQL через PDO
Универсальный и очень простой PHP парсер

Комментарии ()

    Вы должны авторизоваться, чтобы оставлять комментарии.

    Вы можете авторизоваться на сайте через:
    YandexVkontakte

    Рубрики блога

    Последние комментарии

    Алексей Власов 16 октября 2018, 14:27
    Универсальный и очень простой PHP парсер 10
    Алексей Власов 13 октября 2018, 18:57
    Бесконечное сохранение ресурсов в MODX 2
    Александр Петров 30 сентября 2018, 20:54
    Пишем на SQL без SQL: основы по RedBean PHP 10