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

Форум PHP

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

 

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

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

тема: Получение курса валют с сайта центробанка (скрипт)
 
 автор: Саня   (06.04.2006 в 16:12)   письмо автору
 
 

Другой вариант скрипта, находящегося тут: http://www.softtime.ru/scripts/valute.php.
Работает только в PHP5 и выше, так как используется расширение SimpleXML.

   
 
 автор: Artemy   (06.04.2006 в 16:23)   письмо автору
 
   для: Саня   (06.04.2006 в 16:12)
 

Чего-то атач битый какой-то?!

   
 
 автор: Саня   (06.04.2006 в 16:29)   письмо автору
 
   для: Artemy   (06.04.2006 в 16:23)
 

<pre><?php
/*
  array valutes ( [int day [, int month [, int year]]] )
  Получает курс валют с сайта центробанка и помещает результат в массив.
*/

function valutes($d 0$m 0$y 0) {
  if ( !
ini_get("allow_url_fopen") ) return false;
  if ( !
$y $y date("Y"); else $y = (int)$y;
  if ( !
$m $m date("m"); else $m = (int)$m;
  if ( !
$d $d date("d"); else $d = (int)$d;
  if ( 
checkdate($m$d$y) ) {
    if ( 
mktime(001$m$d$y) <= time() ) {
      
$day sprintf("%02d/%02d/%04d"$d$m$y);
    } else 
$day date("d/m/Y");
  } else 
$day date("d/m/Y");
  
$link "http://www.cbr.ru/scripts/XML_daily.asp?date_req=".$day;
  
$xml simplexml_load_file($link);
  
$arr['date'] = $day;
  for ( 
$i 0$i count($xml->Valute); $i++ ) {
    
$ch = (string)$xml->Valute[$i]->CharCode;
    
$arr[$ch]['Nominal'] = (int)$xml->Valute[$i]->Nominal;
    
$arr[$ch]['Name'] = iconv("UTF-8""WINDOWS-1251"$xml->Valute[$i]->Name);
    
$arr[$ch]['Value'] = (string)$xml->Valute[$i]->Value;
  }
  return 
$arr;
}
      
print_r(valutes());
?>

   
 
 автор: Саня   (06.04.2006 в 16:35)   письмо автору
 
   для: Саня   (06.04.2006 в 16:12)
 

Если убрать проверки даты и принимать в качестве аргумента только дату в формате dd/mm/YYYY, получится в два раза короче:
<?php
function valutes($date 0) {
  if ( !
$date $date date("d/m/Y");
  
link "http://www.cbr.ru/scripts/XML_daily.asp?date_req=".$date;
  
$xml simplexml_load_file($link);
  for ( 
$i 0$i count($xml->Valute); $i++ ) {
    
$ch = (string)$xml->Valute[$i]->CharCode;
    
$arr[$ch]['Nominal'] = (int)$xml->Valute[$i]->Nominal;
    
$arr[$ch]['Name'] = iconv("UTF-8""WINDOWS-1251"$xml->Valute[$i]->Name);
    
$arr[$ch]['Value'] = (string)$xml->Valute[$i]->Value;
  }
  return 
$arr;
}
?>

   
 
 автор: Artemy   (06.04.2006 в 16:45)   письмо автору
 
   для: Саня   (06.04.2006 в 16:35)
 

Это все замечательно, но не все еще хостинги перешли на РНР5!

   
 
 автор: Саня   (06.04.2006 в 16:53)   письмо автору
 
   для: Artemy   (06.04.2006 в 16:45)
 

Не все, но многие. Да это и не важно. Я лишь хотел показать возможности SimpleXML.

   
Rambler's Top100
вверх

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