- Автор темы
- #1
вот есть скрипт:
<?php
// Получаем XML-файл с источника
$content = get_content();
// Разбираем содержимое, при помощи регулярных выражений
$pattern = "#<item>[\s]*<date>(.+?)</date>[\s]*".
"<code>(.+?)</code>[\s]*".
"<char3>(.+?)</char3>[\s]*".
"<size>(.+?)</size>[\s]*".
"<name>(.+?)</name>[\s]*".
"<rate>(.+?)</rate>[\s]*".
"<change>(.+?)</change>[\s]*".
"#i";
preg_match_all($pattern, $content, $out);
unset($out[0]);
for($i = 0; $i < count($out[1]); $i++) {
if($out[2][$i] == 840) $dollar = $out[6][$i];
if($out[2][$i] == 978) $euro = $out[6][$i];
if($out[2][$i] == 643) $rub = $out[6][$i];
$valdate = $out[1][1];
}
$dollar = sprintf("%.4f",$dollar/100);
$euro = sprintf("%.4f",$euro/100);
$rub = sprintf("%.4f",$rub);
$valdate = preg_replace('/^(\d{4})-(\d{2})-(\d{2})$/', '\3-\2-\1', $valdate);
function get_content() {
// Формируем ссылку к источнику валюты
$link = 'http://www.bank-ua.com/export/currrate.xml';
// Загружаем HTML-страницу
$fd = fopen($link, "r");
$text='';
if (!$fd) {
echo 'Запрашиваемая страница не найдена';
}
else {
// Чтение содержимого файла в переменную $text
while (!feof ($fd)) $text .= fgets($fd, 4096);
}
// Закрыть открытый файловый дескриптор
fclose ($fd);
return $text;
}
echo "
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
<link href='files/style.css' media=all rel=stylesheet type=text/css>
<title>$PAGE_TITLE</title>
</head>
<body>
<div id='tabledom'>
<table border='0' cellpadding='0' cellspacing='0' width='100%'>
<tr>
на $valdate
</tr>
<tr class='tablezagl2'>
<td>
USD
</td>
<td>
EUR
</td>
<td>
RUB
</td>
</tr>
<tr>
<td width='33%'>
$dollar
</td>
<td width='33%'>
$euro
</td>
<td width='33%'>
$rub
</td>
</tr>
</table>
</div>
</body>
</html>
";
?>
Вы извините конешно просто я совсем новичек в пхп.В этом скрипте неправильно отображается курс по рублю там выводит - 2.0595грн. за один рубль а в одном рубле должно быть 0.2056грн.(примерно) что нужно исправить?а можно както реализовать этот скрипт так чтобы он один раз в день брал данные а ни при каждом обновлении страницы?если можно то как? буду очень благодарен если вы мне в личку скините весь скрипт с такими исправлениями..большое спасибо
<?php
// Получаем XML-файл с источника
$content = get_content();
// Разбираем содержимое, при помощи регулярных выражений
$pattern = "#<item>[\s]*<date>(.+?)</date>[\s]*".
"<code>(.+?)</code>[\s]*".
"<char3>(.+?)</char3>[\s]*".
"<size>(.+?)</size>[\s]*".
"<name>(.+?)</name>[\s]*".
"<rate>(.+?)</rate>[\s]*".
"<change>(.+?)</change>[\s]*".
"#i";
preg_match_all($pattern, $content, $out);
unset($out[0]);
for($i = 0; $i < count($out[1]); $i++) {
if($out[2][$i] == 840) $dollar = $out[6][$i];
if($out[2][$i] == 978) $euro = $out[6][$i];
if($out[2][$i] == 643) $rub = $out[6][$i];
$valdate = $out[1][1];
}
$dollar = sprintf("%.4f",$dollar/100);
$euro = sprintf("%.4f",$euro/100);
$rub = sprintf("%.4f",$rub);
$valdate = preg_replace('/^(\d{4})-(\d{2})-(\d{2})$/', '\3-\2-\1', $valdate);
function get_content() {
// Формируем ссылку к источнику валюты
$link = 'http://www.bank-ua.com/export/currrate.xml';
// Загружаем HTML-страницу
$fd = fopen($link, "r");
$text='';
if (!$fd) {
echo 'Запрашиваемая страница не найдена';
}
else {
// Чтение содержимого файла в переменную $text
while (!feof ($fd)) $text .= fgets($fd, 4096);
}
// Закрыть открытый файловый дескриптор
fclose ($fd);
return $text;
}
echo "
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
<link href='files/style.css' media=all rel=stylesheet type=text/css>
<title>$PAGE_TITLE</title>
</head>
<body>
<div id='tabledom'>
<table border='0' cellpadding='0' cellspacing='0' width='100%'>
<tr>
на $valdate
</tr>
<tr class='tablezagl2'>
<td>
USD
</td>
<td>
EUR
</td>
<td>
RUB
</td>
</tr>
<tr>
<td width='33%'>
$dollar
</td>
<td width='33%'>
$euro
</td>
<td width='33%'>
$rub
</td>
</tr>
</table>
</div>
</body>
</html>
";
?>
Вы извините конешно просто я совсем новичек в пхп.В этом скрипте неправильно отображается курс по рублю там выводит - 2.0595грн. за один рубль а в одном рубле должно быть 0.2056грн.(примерно) что нужно исправить?а можно както реализовать этот скрипт так чтобы он один раз в день брал данные а ни при каждом обновлении страницы?если можно то как? буду очень благодарен если вы мне в личку скините весь скрипт с такими исправлениями..большое спасибо