Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Курс валют
 
 автор: EDDY crazy   (04.11.2008 в 22:20)   письмо автору
 
 

Я всего третий месяц изучаю РНР по вашешей книге "РНР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;

?>

  Ответить  
 
 автор: AcidTrash   (04.11.2008 в 22:35)   письмо автору
 
   для: EDDY crazy   (04.11.2008 в 22:20)
 

>но у меня он почемуто не пошел
И в чем проблемы, какие ошибки?

  Ответить  
 
 автор: Inviseble_Demon   (04.11.2008 в 22:39)   письмо автору
 
   для: 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];
?>

  Ответить  
 
 автор: sim5   (05.11.2008 в 04:49)   письмо автору
 
   для: Inviseble_Demon   (04.11.2008 в 22:39)
 

Курс на завтра! А это что за курс такой?)

  Ответить  
 
 автор: Inviseble_Demon   (05.11.2008 в 11:50)   письмо автору
 
   для: sim5   (05.11.2008 в 04:49)
 

Прогноз ))
Синоптикам та верим )))

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования