Стоит блок который берет курсы по рсс и выводит на сайт.
Сейчас страницы очень долго грузятся, потом ошибка
Warning: fopen(http://www.cbr.ru/scripts/XML_daily.asp?date_req=14/03/2014) [function.fopen]: failed to open stream: Connection timed out в функции get_content() (строка 103 в файле /home/un/www/un.ru/modules/php/php.module(80) : eval()'d code).
Warning: fclose(): supplied argument is not a valid stream resource в функции get_content() (строка 112 в файле /home/unitytra/www/un.ru/modules/php/php.module(80) : eval()'d code).
сам скрипт
.rate img {
margin-bottom:-4px;
}
.rate {
width:200px;
height:60px;
color: #000;
background-repeat:no-repeat;
padding-left:38px;
padding-top:3px;
margin-bottom:8px;
font-size:11px;
font-family: Arial, Helvetica, sans-serif;text-decoration: none;
}
</style>
<div class="rate"><b>Курс валют на</b>
<?php function russian_date() {
$translation = array(
"am" => "дп",
"pm" => "пп",
"AM" => "ДП",
"PM" => "ПП",
"Monday" => "Понедельник",
"Mon" => "Пн",
"Tuesday" => "Вторник",
"Tue" => "Вт",
"Wednesday" => "Среда",
"Wed" => "Ср",
"Thursday" => "Четверг",
"Thu" => "Чт",
"Friday" => "Пятница",
"Fri" => "Пт",
"Saturday" => "Суббота",
"Sat" => "Сб",
"Sunday" => "Воскресенье",
"Sun" => "Вс",
"January" => "Января",
"Jan" => "Янв",
"February" => "Февраля",
"Feb" => "Фев",
"March" => "Марта",
"Mar" => "Мар",
"April" => "Апреля",
"Apr" => "Апр",
"May" => "Мая",
"May" => "Мая",
"June" => "Июня",
"Jun" => "Июн",
"July" => "Июля",
"Jul" => "Июл",
"August" => "Августа",
"Aug" => "Авг",
"September" => "Сентября",
"Sep" => "Сен",
"October" => "Октября",
"Oct" => "Окт",
"November" => "Ноября",
"Nov" => "Ноя",
"December" => "Декабря",
"Dec" => "Дек",
"st" => "ое",
"nd" => "ое",
"rd" => "е",
"th" => "ое",
);
if (func_num_args() > 1) {
$timestamp = func_get_arg(1);
return strtr(date(func_get_arg(0), $timestamp), $translation);
} else {
return strtr(date(func_get_arg(0)), $translation);
};
}
echo russian_date("<b>j M. Y года</b>");
?>
<br />
<?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]);
}
echo "<img src='/files/dollar.gif' alt='USD' /> = ".$dollar." Руб.<br />";
echo "<img src='/files/euro.gif' alt='EUR' /> = ".$euro." Руб.<br />";
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) echo "Запрашиваемая страница не найдена";
else
{
// Чтение содержимого файла в переменную $text
while (!feof ($fd)) $text .= fgets($fd, 4096);
}
// Закрыть открытый файловый дескриптор
fclose ($fd);
return $text;
}
?>
</div>
почему это происходит?
Комментарии
Сайт cbr под ддосом. Просто ждите пока поднимется.
увидел в новостях, вы правы.
хотя, хмл грузиться хорошо с него