Кароче:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
$url = 'https://www.cbr.ru/scripts/XML_daily.asp'; // Ссылка на XML-файл с курсами валют, будут самые актуальные значения курса //$current_date = date("d/m/Y"); // текущая дата в нужном формате //$url = 'https://www.cbr.ru/scripts/XML_daily.asp?date_req='.$current_date; // Ссылка на XML-файл с курсами валют за конкретную дату $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url ); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_TIMEOUT, 30); $content = curl_exec($ch); curl_close($ch); $xml = @simplexml_load_string($content); foreach ($xml->Valute as $item) { // R01235 - Доллар США // R01239 - Евро if ($item['ID'] == 'R01235') { $usd = $item->Value; } if ($item['ID'] == 'R01239') { $eur = $item->Value; } } if (!empty($usd)) { $usd = str_replace(',', '.', $usd); // меняем , на . } if (!empty($eur)) { $eur = str_replace(',', '.', $eur); // меняем , на . } echo $usd.'<br>'; echo $eur; |
Подробнее:
Введение
Веб-разработка требует множества инструментов и технологий, чтобы создать полноценные веб-приложения. Одним из распространенных запросов при разработке веб-сайтов является получение актуального курса валют для отображения пользователю. Это может понадобиться для финансовых приложений, интернет-магазинов и других веб-сервисов. В этой статье мы рассмотрим, как можно получить актуальный курс валют на PHP с использованием cURL и XML.
Шаг 1: Получение XML с курсами валют
Для начала, нам нужно получить данные с актуальными курсами валют. Мы можем воспользоваться сервисом Центрального банка России (ЦБР), который предоставляет XML-файл с курсами валют. В приведенном ниже коде, мы используем cURL для получения этого файла:
|
1 2 3 4 5 6 7 8 9 10 11 |
$url = 'https://www.cbr.ru/scripts/XML_daily.asp'; // Ссылка на XML-файл с курсами валют, будут самые актуальные значения курса $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_TIMEOUT, 30); $content = curl_exec($ch); curl_close($ch); |
Этот код отправляет GET-запрос на указанный URL и сохраняет ответ в переменной $content.
Шаг 2: Обработка XML и извлечение данных
После получения XML-файла с курсами валют, нам нужно извлечь данные о конкретных валютах, например, долларе США и евро. Мы используем библиотеку SimpleXML для этой цели:
|
1 2 3 4 5 6 7 8 9 10 |
$xml = @simplexml_load_string($content); foreach ($xml->Valute as $item) { if ($item['ID'] == 'R01235') { $usd = $item->Value; } if ($item['ID'] == 'R01239') { $eur = $item->Value; } } |
В этом фрагменте кода мы перебираем каждый элемент <Valute> в XML и проверяем атрибут ID для определения нужной валюты (например, ‘R01235’ для доллара США и ‘R01239’ для евро). Значения курсов валют сохраняются в переменных $usd и $eur.
Шаг 3: Обработка данных и вывод результатов
После извлечения данных мы можем произвести дополнительную обработку, например, заменить запятые на точки, чтобы преобразовать строки в числа:
|
1 2 3 4 5 6 |
if (!empty($usd)) { $usd = str_replace(',', '.', $usd); // меняем , на . } if (!empty($eur)) { $eur = str_replace(',', '.', $eur); // |
