Курсы доллара и евро с сайта Центробанка на PHP

Курсы доллара и евро с сайта Центробанка на PHP

17 сентября 2019 PHP

Парсер получает курсы доллара и евро с сайта Центробанка каждые 24 часа и записывает их в файл кеша /log/course.txt
Скрипт полностью готов к работе и не требует каких-либо дополнительных настроек.

<?
function loadCourse(){
define("tsCourse","15:00:00");		# Время смены курса центральным банком
$courseFile = $_SERVER['DOCUMENT_ROOT']."/log/course.txt";
if (file_exists($courseFile)){
   $lastModified = filemtime($courseFile);
   // каждые 24 часа, но с учетом времени смены курса центральным банком
   if (date("Y-m-d H:i:s",$lastModified) > date("Y-m-d H:i:s",time()-60*60*24) && !(date("H:i:s",$lastModified) < tsCourse && date("H:i:s")>tsCourse ) ) {
    return explode('|',file_get_contents($courseFile));
    }
}

// Получаем текущие курсы валют с сайта www.cbr.ru
$content = getCourse();

if(!$content&&file_exists($courseFile)){// считаю по старому курсу если он есть
    return explode('|',file_get_contents($courseFile));
}

  // Разбираем содержимое, при помощи регулярных выражений
  $pattern = "#<Valute ID=\"([^\"]+)[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)#i";
  preg_match_all($pattern, $content, $out1, PREG_SET_ORDER);
  $dollar = "";
  $euro = "";
  foreach($out1 as $cur1)
  {
    if($cur1[2] == 840) $dollar = str_replace(",",".",$cur1[4]);
    if($cur1[2] == 978) $euro   = str_replace(",",".",$cur1[4]);
  }

  if(file_put_contents($courseFile, $course = ($dollar.'|'.$euro))<7)die('Ошибка записи в '.$courseFile);
  return explode('|',$course);
}

function getCourse(){
    // Формируем сегодняшнюю дату
    $date = date("d/m/Y");
    // Формируем ссылку
    $link = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=".$date;
    // Загружаем HTML-страницу
    $fd = @fopen($link, "r");
    $text="";
    if (!$fd) echo "<h3>Сервер ЦБ не отвечает!</h3>";
    else
    {
      // Чтение содержимого файла в переменную $text
      while (!feof ($fd)) $text .= @fgets($fd, 4096);
      // Закрыть открытый файловый дескриптор
      @fclose ($fd);
    }
    return $text;
}
?>

<?
list($dollar, $euro) = loadCourse();
?>

<?echo '$:'.$dollar;?>
<?echo '€:'.$euro;?>

Здесь скидки и промокоды https://skeed.ru/shop/3c5d5531-b9ab-4414-be3f-4ae9d2c257b7

Если вам понравилась статья, вы можете отблагодарить автора любой суммой, какую сочтете для себя приемлемой:
Остались вопросы по статье? Задайте их прямо сейчас!
Телеграм бот на PHP отправляющий сообщения с сайта

Что если сообщения с сайта будут приходить не только на ваш e-mail, но и моментально в мессенджер телеграм. Удобно же! Нужно было реализовать такой функционал, ну как и всегда все оказалось довольно просто. Так же стояла задача отправлять сообщения не Читать далее

Отправка формы без перезагрузки страницы на PHP и Ajax

Постоянно приходится пользоваться этой заготовкой. Вы можете модернизировать ее под любые нужды, будь то форма обратной связи, форма обратного звонка или заказ какой-либо услуги или товара. Поэтому я не буду украшать ее стилями, применять классы Bootstrap и различные скрипты, как Читать далее

Вывести на PHP месяц и день недели на русском

Довольно часто приходится сталкиваться с выводом названий месяцев и дней недели по-русски. При чем в различных вариантах, к примеру с полным названием или сокращенным, с большой буквы или с маленькой. Можно воспользоваться одним из этих 2 вариантов для вывода даты Читать далее

Парсер яндекс погоды на PHP

Рабочий пример PHP парсера, который получает погоду с Яндекса по ID города. Скрипт сохраняет данные в файле кеша на сайте, и обновляет его раз в час. Так же расскажу как выводить на сайте собственные иконки погоды вместо стандартных от Яндекса. Читать далее

Как встроить видео с YouTube канала на сайт

Для вывода списка видеозаписей из канала или плейлиста YouTube на сайте можно воспользоваться этим полностью рабочим решением на PHP. С помощью этой функции можно получить все необходимые данные видеозаписей: название, изображение и идентификатор видео. Вам понадобится идентификатор канала или плейлиста. Читать далее

Курсы доллара и евро с сайта Центробанка на PHP

Парсер получает курсы доллара и евро с сайта Центробанка каждые 24 часа и записывает их в файл кеша /log/course.txt Скрипт полностью готов к работе и не требует каких-либо дополнительных настроек. <? function loadCourse(){ define("tsCourse","15:00:00"); # Время смены курса центральным банком Читать далее

Календарь на PHP и Ajax

Пример календаря на PHP и Ajax с переключением месяцев. Можно использовать как заготовку для решения любых задач. Я использовал его для создания плагина календаря мероприятий на WordPress. Скрипт использует процедурный подход, но имеет разделенную структуру с шаблоном , что довольно Читать далее

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