Парсим курсы валют с Приват и Говерла без регулярок

Парсить можно очень многое, самый элементарный и довольно часто используемый пример это курсы валют.
Существует немало библиотек для пасинга, но сегодня попробую сделать на чистом php.
В случае с Приват будем забирать курс при помощи API Приват и разбором json, а Говерлу вытянем через file_get_contents.
Дальше просто код с комментариями…..

/**
 * @author RAMStudio
 * @copyright 2020
 */
 
//GOVERLA USD-EURO COURSE
$content = file_get_contents('https://goverla.ua');
// Определяем позицию строки, до которой нужно все отрезать
$pos_usd = strpos($content, '<div class="gvrl-table-row" id="usd">');
//Отрезаем все, что идет до нужной нам позиции
$content_us = substr($content, $pos_usd);
// Отрезаем нужное количество символов от нулевого
$content_us = substr($content_us, 0, $pos_usd);
//если в тексте встречается текст, который нам не нужен, вырезаем его
$content_us = str_replace('<img src="/static/imgs/flags/usd.png" alt="USD" title="USD - Долар США">','', $content_us);

// Определяем позицию строки, до которой нужно все отрезать
$pos_eu = strpos($content, '<div class="gvrl-table-row" id="eur">');
//Отрезаем все, что идет до нужной нам позиции
$content_eu = substr($content, $pos_eu);
// Отрезаем нужное количество символов от нулевого
$content = substr($content, 0, $pos_eu);
//если в тексте встречается текст, который нам не нужен, вырезаем его
$content_eu = str_replace('<img src="/static/imgs/flags/eur.png" alt="EUR" title="EUR - Євро">','', $content_eu);

// выводим спарсенный текст для euro.
$content_eu = str_split($content_eu, 10);
// выводим спарсенный текст для usd.
$content_uhsd = str_split($content_us, 10);

$goverla_usd_buy = number_format($content_uhsd['23']/100, 2, ',', ' ');
$goverla_usd_sale = number_format($content_uhsd['30']/100, 2, ',', ' ');
$goverla_euro_buy = number_format($content_eu['22']/100, 2, ',', ' ');
$goverla_euro_sale = number_format($content_eu['29']/100, 2, ',', ' ');

echo '<a href="https://goverla.ua/" target="_blank">GOVERLA</a><br/>';
echo '$ '.$goverla_usd_buy.' - '.$goverla_usd_sale;
echo '<br/>';
echo '$ '.$goverla_euro_buy.' - '.$goverla_euro_sale;


//PRIVATBANK COURSE
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_URL, 'https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5');
$result2 = curl_exec($ch2);
curl_close($ch2);
$obj2 = json_decode($result2);
$dollar = $obj2['0'];
$euro = $obj2['1'];
$dollar = json_decode(json_encode($dollar),true);
$euro = json_decode(json_encode($euro),true);
$dollar_buy = round($dollar['buy'], 2);
$dollar_sale = round($dollar['sale'], 2);
$euro_buy = round($euro['buy'], 2);
$euro_sale = round($euro['sale'], 2);
echo '<br/><br/>';
echo '<a href="https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5" target="_blank">PRIVATBANK</a>';
echo '<br/>';
echo '$ '.$dollar_buy.' - '.$dollar_sale;
echo '<br/>';
echo '$ '.$euro_buy.' - '.$euro_sale;

 

Posted in PHP
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
× iOs app

To install this Web App in your iPhone/iPad press iOs sourse and then Add to Home Screen.