Здравствуйте. Подскажите, пожалуйста, скрипт обращается к сайту ЦентроБанка, чтобы определить актуальный курс валют. Но иногда их сайт затупливает, и соответственно не грузится мой сайт (белый экран и думает думает думает......). Так вот как сделать, чтобы если в течении 10 сек не было ответа от cbr.ru, то он просто переставал бы грузить их сайт. Вот скрипт: Код (Text): <?php $notcon=0; // Получаем текущие курсы валют в 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]); } if ($notcon==1){ $dollar = "65"; $euro = "74"; } 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 "CB Server is not available"; $notcon=1; } else { // Чтение содержимого файла в переменную $text while (!feof ($fd)) $text .= fgets($fd, 4096); // Закрыть открытый файловый дескриптор fclose ($fd); } return $text; } ?>
делай через cron, а не каждый запрос пользователя, обновляй раз в 12 часов например timeout соединения
@SForce, лучше отдельной задачкой периодически получать актуальные курсы требуемых валют, писать их в свою базу, их которой Ваш сайт будет их брать без всяких подвисаний. К тому-же у cbr есть разные варианты получения данных: http://www.cbr.ru/scripts/Root.asp.