|
|
|
| Я всего третий месяц изучаю РНР по вашешей книге "РНР5 практика создания WEB-сайтов" и столкнулся с проблемой вывода курса валют. Скачал скрипт с сайта, но у меня он почемуто не пошел и тогда решил написать свой. Прошу прокоментировать.
1. Будет ли он работать
2. И какие в нём есть недостатки.
Зарание благодарен.
<?
// Формируем сегодняшнюю дату
$date = date("d/m/Y");
// Формируем ссылку
$address = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=$date";
// Читаем файл
$fd = fopen($address, "r");
flock ($fd, LOCK_SH);
$massive = file($address);
flock ($fd, LOCK_UN);
fclose ($fd);
// Подготовка к извлечению данных
$num = 0;
$clean = "eulaV></LAUE";
$len = count ($massive);
// Извлечение данных
for ($n = 0; $n < $len; $n++)
{
$m = $n;
$str1 = $massive["$m"];
$m++;
$str2 = $massive["$m"];
$m++;
$m++;
$m++;
$str5 = $massive["$m"];
$str5 = trim ($str5);
if (strstr ($str1, "840"))
{
if (strstr ($str2, "USD"))
{
$temporary[0] = strtok ($str5, $clean);
$n = $m;
$num++;
}
}
if (strstr ($str1, "978"))
{
if (strstr ($str2, "EUR"))
{
$temporary[1] = strtok ($str5, $clean);
$n = $m;
$num++;
}
}
if ($num == 2) $n = $len;
}
$dollar = $temporary[0];
$euro = $temporary[1];
print "Доллар США - " . $dollar . "<br/>" . "Евро - " . $euro;
?> | |
|
|
|
|
|
|
|
для: EDDY crazy
(04.11.2008 в 22:20)
| | >но у меня он почемуто не пошел
И в чем проблемы, какие ошибки? | |
|
|
|
|
|
|
|
для: EDDY crazy
(04.11.2008 в 22:20)
| | Мой скрипт будит немного потежелее для сервера (он 2 страницы качает + HTML а не XML)
Но он говарит курс для USD и EUR на сегодня завтра и вчера. так что совутую просто взять мой.
Ну а если смысл не в рабочем скрипте а с точки зрения валидности кода то вы лудше на регулярных вырожениях парсерите курсы.
Вот мой код если что регулярки почти подходят ))
<?
$url='http://www.finmarket.ru/z/vlk/valdetails.asp?val=840';
$text = file_get_contents("$url");
$text=strip_tags($text);
$yesterday_date_d = date("d", time()-86400);
$yesterday_date_m = date("m");
$yesterday_date_y = date("y");
$yesterday_date="$yesterday_date_d.$yesterday_date_m.20$yesterday_date_y";
$today_date_d = date("d");
$today_date_m = date("m");
$today_date_y = date("y");
$today_date="$today_date_d.$today_date_m.20$today_date_y";
$tomorrow_date_d = date("d",time()+86400);
$tomorrow_date_m = date("m");
$tomorrow_date_y = date("y");
$tomorrow_date="$tomorrow_date_d.$tomorrow_date_m.20$tomorrow_date_y";
$result = preg_match("/$yesterday_date\D*(\d{2},\d{4})/",$text,$found1);
$result = preg_match("/$today_dat\D*(\d{2},\d{4})/",$text,$found2);
$result = preg_match("/$tomorrow_date\D*(\d{2},\d{4})/",$text,$found3);
$USD_yesterday=$found1[1];
$USD_today=$found2[1];
$USD_tomorrow=$found3[1];
####################################################################
$url='http://www.finmarket.ru/z/vlk/valdetails.asp?val=978';
$text = file_get_contents("$url");
$text=strip_tags($text);
$yesterday_date_d = date("d", time()-86400);
$yesterday_date_m = date("m");
$yesterday_date_y = date("y");
$yesterday_date="$yesterday_date_d.$yesterday_date_m.20$yesterday_date_y";
$today_date_d = date("d");
$today_date_m = date("m");
$today_date_y = date("y");
$today_date="$today_date_d.$today_date_m.20$today_date_y";
$tomorrow_date_d = date("d",time()+86400);
$tomorrow_date_m = date("m");
$tomorrow_date_y = date("y");
$tomorrow_date="$tomorrow_date_d.$tomorrow_date_m.20$tomorrow_date_y";
$result = preg_match("/$yesterday_date\D*(\d{2},\d{4})/",$text,$found1);
$result = preg_match("/$today_dat\D*(\d{2},\d{4})/",$text,$found2);
$result = preg_match("/$tomorrow_date\D*(\d{2},\d{4})/",$text,$found3);
$EUR_yesterday=$found1[1];
$EUR_today=$found2[1];
$EUR_tomorrow=$found3[1];
?>
|
| |
|
|
|
|
|
|
|
для: Inviseble_Demon
(04.11.2008 в 22:39)
| | Курс на завтра! А это что за курс такой?) | |
|
|
|
|
|
|
|
для: sim5
(05.11.2008 в 04:49)
| | Прогноз ))
Синоптикам та верим ))) | |
|
|
|