-
Notifications
You must be signed in to change notification settings - Fork 0
/
curs.php
44 lines (39 loc) · 1.52 KB
/
curs.php
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
<?php
// Получаем текущие курсы валют в rss-формате с сайта www.cbr.ru
$content = get_content();
// Разбираем содержимое, при помощи регулярных выражений
$pattern = "#<Valute ID=\"([^\"]+)[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)#i";
preg_match_all($pattern, $content, $out, PREG_SET_ORDER);
$dollar = "";
$euro = "";
foreach($out as $cur)
{
if($cur[2] == 840) $dollar = str_replace(",",".",$cur[4]);
if($cur[2] == 978) $euro = str_replace(",",".",$cur[4]);
}
$cursi = array('doll' => $dollar, 'eur' => $euro);
$cur = json_encode($cursi, JSON_UNESCAPED_UNICODE);
echo $cur;
function get_content()
{
// Формируем сегодняшнюю дату
$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) {
$cursi = array('doll' => 'Сервер ЦБ не отвечает', 'eur' => 'Сервер ЦБ не отвечает');
echo json_encode($cursi); "Сервер ЦБ не отвечает";
}
else
{
// Чтение содержимого файла в переменную $text
while (!feof ($fd)) $text .= fgets($fd, 4096);
// Закрыть открытый файловый дескриптор
fclose ($fd);
}
return $text;
}
?>