Парсинг перестал работать

Главные вкладки

Аватар пользователя Jheka Jheka 14 марта 2014 в 13:51

Стоит блок который берет курсы по рсс и выводит на сайт.

Сейчас страницы очень долго грузятся, потом ошибка
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).

сам скрипт

<style>
.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>

почему это происходит?

Комментарии