помогите разобраться с $link

Watcher

Новичок
помогите разобраться с $link

В PHP новичок, поэтому взял готовый скрипт для выдирания с www.cbr.ru курсов валют, подправил под свой www.nbrb.by, но он правильно работает только до 13:00 по местному времени :) , а после показывает курсы следующего дня, помогите в чем грабли.
И если подкорректируете мое Рег.Выр. тоже буду благодарен.

Пример:

<?php
// Получаем текущие курсы валют с сайта www.nbrb.by
$content = get_content();

// Разбираем содержимое, при помощи регулярных выражений отдельно для каждого
// так как не смог разобраться до конца с Рег.Выр.
$pattern = "|USD.*>1 доллар США<.*>(\d[^\s][\d]{3}\.[\d]{2})<| isU";
$pattern1 = "|EUR.*>1 евро<.*>(\d[^\s][\d]{3}\.[\d]{2})<| isU";
$pattern2 = "|RUB.*>1 российский рубль<.*>([\d]{2}\.[\d]{2})<| isU";

// Формируем 2 сегодняшних даты 1 одну для НТМЛ 2 для запроса
$date = date("Y-m-d");
$date1 = date("d.m.Y");

preg_match_all($pattern, $content, $out);
$USD = $out[1][0];
preg_match_all($pattern1, $content, $out);
$EUR = $out[1][0];
preg_match_all($pattern2, $content, $out);
$RUB = $out[1][0];

echo " Курсы на " .$date1."<br>";
echo "1 USD - " .$USD."<br>";
echo "1 EUR - " .$EUR."<br>";
echo "1 RUB - " .$RUB."<br>";

function get_content()
{

// Формируем ссылку
$link = "http://www.nbrb.by/statistics/rates/ratesDaily.asp?fromDate=$date";

// Загружаем HTML-страницу
$fd = fopen($link, "r");
$text="";
if (!$fd) echo "Запрашиваемая страница не найдена";
else
{

// Чтение содержимого файла в переменную $text
while (!feof ($fd)) $text .= fgets($fd, 4096);
}

// Закрыть открытый файловый дескриптор
fclose ($fd);
return $text;
}
?>

хотя по $link = "http://www.nbrb.by/statistics/rates/ratesDaily.asp?fromDate=$date";
курсы показывает верно :(
 

Mavir

Новичок
Зашел по ссылке. Время 14:15. Там сейчас курсы на 8.04.2006.
 

Watcher

Новичок
Привет.
Так вместо $date подставляеться дата 2006-04-07 должно получается по моему разумению
http://www.nbrb.by/statistics/rates/ratesDaily.asp?fromDate=2007-04-07
там курсы те что мне нужны, а в скрипте выводит курсы на 08.04.2006, вот я и спрашиваю где я делаю ошибку.
 

Watcher

Новичок
Привет.

Вот я прошу гуру помочь мне где не верно я переделал скрипт,
или в $link или в Рег.Выр.
 

Watcher

Новичок
Привет.

да не корректно работает, пример скрипта что я предоставил выше работает правильно только до 13:00 по местному времени, т.е. сегодня до обеда он показывал правильные курсы на 07.04.2006 а после 13:00 курсы на 08.04.2006, а надо что бы и после обеда показывал курсы на 07.04.2006.
 

Watcher

Новичок
Если глазами смотреть ссылку
http://www.nbrb.by/statistics/rates/ratesDaily.asp?fromDate=2006-04-07, то курсы по этой ссылке правильные, если я правильно понял вопрос.
 

Фанат

oncle terrible
Команда форума
а если вывести на экран то, что получает твой скрипт?
 

Watcher

Новичок
Вывожу и курсы показывает на 08.04.2006

-~{}~ 07.04.06 15:58:

а до 13:00 показывал на 07.04.2006
 

Mavir

Новичок
А не пробовал посмотреть значение переменной $link?

У тебя $date инициализируется вне функции.
 

Фанат

oncle terrible
Команда форума
то есть, если ятебя правильно понял:
если просто вывести всю инфу просто на экран, то показывает за 8-ое
а если из неё регами вырезать, то оказывается за 7-е?

поздравляю.
ты стал свидетелем чуда
 

Watcher

Новичок
точно выводит http://www.nbrb.by/statistics/rates/ratesDaily.asp?fromDate=
дату в конце не дописывает :( а почему ?
 

Mavir

Новичок
Во-первых, функцию вызываешь до инициализации $date.
Во-вторых, почитай про область видимости переменной. Ссылку не искал, но есть в любой документации по PHP
 

Watcher

Новичок
Все спасибо воткнул $date в функцию перед $link и все пошло как надо, а я в функцие выводил $date и он мне показывал правилно :), вот это меня и запутало :)
 

Фанат

oncle terrible
Команда форума
при чём здесь руки?
если ты выводишь несуществующую переменную и наблюдаешь её на экране - это ли не чудо?
 
Сверху