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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Курсы валют

Сообщения:  [1-5] 

 
 автор: afdm   (18.07.2007 в 10:00)   письмо автору
 
   для: Faraon   (18.07.2007 в 08:21)
 

спасибо!!! вроде работает!!!!

   
 
 автор: Faraon   (18.07.2007 в 08:21)   письмо автору
 
   для: afdm   (17.07.2007 в 18:14)
 

Замените на эти строки:


$kurs=substr($dollar, 0,7);
 $kurs1=substr($euro, 0,7);
$kurs3=substr($dollar, 0,7);
 $kurs4=substr($euro, 0,7);

   
 
 автор: afdm   (17.07.2007 в 18:14)   письмо автору
 
   для: Faraon   (17.07.2007 в 17:21)
 

а как в этом скрипте сделать вывод не 2 знаков после запятой, а 4???

   
 
 автор: Faraon   (17.07.2007 в 17:21)   письмо автору
 
   для: afms   (17.07.2007 в 15:05)
 

Попробуйте так:

<?php

  $content 
get_content();
  
// Разбираем содержимое, при помощи регулярных выражений
  
$pattern "#<Valute ID=\"([^\"]+)[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)#i";
  
preg_match_all($pattern$content$outPREG_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]);
  }
 
$kurs=substr($dollar0,5);
 
$kurs1=substr($euro0,5);


  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="";

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

    
// Закрыть открытый файловый дескриптор
    
fclose ($fd);
    return 
$text;
  }
  
 
//ВЫЗОВ ДРУГОЙ ДАТЫ
 
$content get_contenty();
  
// Разбираем содержимое, при помощи регулярных выражений
  
$pattern "#<Valute ID=\"([^\"]+)[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)[^>]+>[^>]+>([^<]+)#i";
  
preg_match_all($pattern$content$outPREG_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]);
  }
 
$kurs3=substr($dollar0,5);
 
$kurs4=substr($euro0,5);


  function 
get_contenty()
  {
    
// Формируем сегодняшнюю дату
    
$date date("d/m/Y");
    
// Формируем ссылку
    
$link "http://www.cbr.ru/scripts/XML_daily.asp?date_req=07/04/2007";
    
// Загружаем HTML-страницу
    
$fd fopen($link"r");
    
$text="";

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

    
// Закрыть открытый файловый дескриптор
    
fclose ($fd);
    return 
$text;
  }
  echo 
"Доллар сегодня "$kurs;
 echo 
"<br>Евро сегодня ".$kurs1;
  
echo 
"<br>Доллар 7 апреля "$kurs3;
 echo 
"<br>Евро 7 апреля ".$kurs4;
  
$raznica$kurs-$kurs3;
  echo 
"<br><br>Разница доллара ".$raznica;
  
$raznica1$kurs1-$kurs4;
  echo 
"<br><br>Разница евро ".$raznica1;

 
?>

   
 
 автор: afms   (17.07.2007 в 15:05)   письмо автору
 
 

Народ! помогите!!
есть проблема такая: мне необходимо вычислить изменения текущего курса валюты относительно предыдущего курса!?
Вот код:


  $link = "http://www.cbr.ru/currency_base/D_print.asp?date_req=$date";
  $fd=fopen($link, "r");
  $text="";
  $out="";
  if ($fd)
  {
    while (!feof($fd))$text.=fgets($fd, 4096);
    {
      fclose($fd);
      // Доллар США
      preg_match("|Доллар США[^>]*>[^>]*>([\d,\.]*)|i", $text, $out);
      echo ("Курс доллара США - ".$out[1]."<br>");
      // Евро
      preg_match("|Евро[^>]*>[^>]*>([\d,\.]*)|i", $text, $out);
      echo ("Курс евро - ".$out[1]."<br>");
    }
  }

  //вычисление курса
  $ylink = "http://www.cbr.ru/currency_base/D_print.asp?date_req=$date";
  $yfd=fopen($ylink, "r");
  $ytext="";
  $yout="";
  if ($yfd)
  {
    while (!feof($yfd))$ytext.=fgets($yfd, 4096);
    {
      fclose($yfd);
      // Доллар США
      preg_match("|Доллар США[^>]*>[^>]*>([\d,\.]*)|i", $ytext, $yout);
      echo ("Курс доллара США - ".$yout[1]."<br>");
      // Евро
      preg_match("|Евро[^>]*>[^>]*>([\d,\.]*)|i", $ytext, $yout);
      echo ("Курс евро - ".$yout[1]);
    }
  }

далее вычисляю изменения:

      $izm = ($out[1] - $yout[1]);
      echo $izm;

Проблема в том, что переменные $out и $yout присутствуют только в каждом из циклов!!
Может как можно их запомнить, а потом посчитать))) ну или сразу в цикле посчитать и вывести)))))

   

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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