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

Форум PHP

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

 

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

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

тема: на вашем сайте есть скрипт курса валют

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

 
 автор: Help   (12.05.2007 в 10:29)   письмо автору
 
   для: cheops   (11.05.2007 в 14:08)
 

Спасибо БОЛЬШОЕ. Очень помогли.
Все работает, немного подправлю под свои нужды. Потом сообщу об изменениях.

Вот источник: http://www.bank-ua.com/export/currrate.xml

Там выдается еще дата, лучше наверно закидывать инфу в файл, как дата изменилась инфу в файле менять на новую. Чтобы трафик не гонять. Где-то я такой встречал.

Ща сам поэксперементирую, может получится сделать.

   
 
 автор: cheops   (11.05.2007 в 14:08)   письмо автору
 
   для: Help   (11.05.2007 в 00:42)
 

Можно поступить следующим образом
<?php 
  
// Получаем XML-файл с источника
  
$content get_content(); 
  
// Разбираем содержимое, при помощи регулярных выражений 
  
$pattern "#<item>[\s]*<date>(.+?)</date>[\s]*".
             
"<code>(.+?)</code>[\s]*".
             
"<char3>(.+?)</char3>[\s]*".
             
"<size>(.+?)</size>[\s]*".
             
"<name>(.+?)</name>[\s]*".
             
"<rate>(.+?)</rate>[\s]*".
             
"<change>(.+?)</change>[\s]*".
             
"#i"
  
preg_match_all($pattern$content$out); 
  unset(
$out[0]);
  for(
$i 0$i count($out[1]); $i++)
  {
    if(
$out[2][$i] == 840$dollar $out[6][$i];
    if(
$out[2][$i] == 978$euro $out[6][$i];
    if(
$out[2][$i] == 840$rub $out[6][$i];
  }
  echo 
"Доллар - $dollar<br>";
  echo 
"Евро - $euro<br>";
  echo 
"Рубль - $rub<br>";

  function 
get_content() 
  { 
    
// Формируем ссылку к источнику валюты
    
$link "get1.txt"
    
// Загружаем HTML-страницу 
    
$fd fopen($link"r"); 
    
$text=""
    if (!
$fd) echo "Запрашиваемая страница не найдена"
    else 
    { 
      
// Чтение содержимого файла в переменную $text 
      
while (!feof ($fd)) $text .= fgets($fd4096); 
    } 
    
// Закрыть открытый файловый дескриптор 
    
fclose ($fd); 
    return 
$text
  } 
?>


>Потом можно этот скрипт выложить тут, т.к. многие ищут(я тоже искал) курс валют украинских
>банков. А то везде только курсы российских.
А вы источник приведите, который следует подставлять вместо файла get1.txt? Откуда курсы берёте?

   
 
 автор: Help   (11.05.2007 в 00:42)   письмо автору
 
   для: cheops   (10.05.2007 в 13:48)
 

Номер 840 это dollar
Номер 978 это euro
Номер 643 это rub

P.S.
Потом можно этот скрипт выложить тут, т.к. многие ищут(я тоже искал) курс валют украинских банков. А то везде только курсы российских.

Спасибо вам заранее.

   
 
 автор: cheops   (10.05.2007 в 13:48)   письмо автору
 
   для: Help   (09.05.2007 в 20:50)
 

А вам какие валюты нужны и под какими номерами они фигурируют?
<?php 
  
// Получаем XML-файл с источника
  
$content get_content(); 
  
// Разбираем содержимое, при помощи регулярных выражений 
  
$pattern "#<item>[\s]*<date>(.+?)</date>[\s]*".
             
"<code>(.+?)</code>[\s]*".
             
"<char3>(.+?)</char3>[\s]*".
             
"<size>(.+?)</size>[\s]*".
             
"<name>(.+?)</name>[\s]*".
             
"<rate>(.+?)</rate>[\s]*".
             
"<change>(.+?)</change>[\s]*".
             
"#i"
  
preg_match_all($pattern$content$out); 
  unset(
$out[0]);
  echo 
"<pre>";
  
print_r($out);
  echo 
"</pre>";
  function 
get_content() 
  { 
    
// Формируем ссылку к источнику валюты
    
$link "get1.txt"// Нужно заменить на URL источника
    // Загружаем HTML-страницу 
    
$fd fopen($link"r"); 
    
$text=""
    if (!
$fd) echo "Запрашиваемая страница не найдена"
    else 
    { 
      
// Чтение содержимого файла в переменную $text 
      
while (!feof ($fd)) $text .= fgets($fd4096); 
    } 
    
// Закрыть открытый файловый дескриптор 
    
fclose ($fd); 
    return 
$text
  } 
?>

   
 
 автор: Help   (09.05.2007 в 20:50)   письмо автору
 
   для: cheops   (25.02.2007 в 00:57)
 

Мне понравился Ваш скрипт.
Я не сильно силен в этом.
Нашел в сети возможность доставать курс с украинского банка.
Но не могу разобраться, как взять нужные поля так же как вы берете с российского сайта.

Если вам не трудно, подскажите пожалуйста где заменить в коде, чтобы можно было доставать с такого xml-а


  <?xml version="1.0" encoding="windows-1251" ?> 
- <chapter>
- <item>
  <date>2007-05-10</date> 
  <code>031</code> 
  <char3>AZM</char3> 
  <size>100</size> 
  <name>азербайджанських манатів</name> 
  <rate>584.8969</rate> 
  <change>0.2031</change> 
  </item>
- <item>
  <date>2007-05-10</date> 
  <code>036</code> 
  <char3>AUD</char3> 
  <size>100</size> 
  <name>австралійських доларів</name> 
  <rate>418.6359</rate> 
  <change>1.5046</change> 
  </item>


Спасибо большое.

   
 
 автор: cheops   (25.02.2007 в 00:57)   письмо автору
 
   для: cheops   (24.02.2007 в 12:56)
 

Вот этот блок
<?php
  
foreach($out as $cur
  { 
    if(
$cur[2] == 840$dollar str_replace(",",".",$cur[4]); 
    if(
$cur[2] == 978$euro   str_replace(",",".",$cur[4]); 
  } 
?>

следует исправить следующим образом
<?php
  
foreach($out as $cur
  { 
    if(
$cur[2] == 840$dollar str_replace(",",".",$cur[4]); 
    if(
$cur[2] == 978$euro   str_replace(",",".",$cur[4]); 
    if(
$cur[2] == 980$hryvnia   str_replace(",",".",$cur[4]); 
  } 
?>

   
 
 автор: мармон   (24.02.2007 в 13:33)   письмо автору
 
   для: cheops   (24.02.2007 в 12:56)
 

ок спасибо большое а как узнавать имена $hryvnia это в коде чето не видно

   
 
 автор: cheops   (24.02.2007 в 12:56)   письмо автору
 
   для: мармон   (24.02.2007 в 11:57)
 

Надёжнее было бы найти данные по украинскому центральному банку. Загрузите исходную страницу, например, http://www.cbr.ru/scripts/XML_daily.asp?date_req=21/01/2007 - там будет XML-файл, из него видно, что гривна имеет код 980, добавьте в цикле foreach строку
<?php
   
if($cur[2] == 980$hryvnia   str_replace(",",".",$cur[4]); 
?>

и получите курс гривны относительно рубля - потом можно пересчитать, в принципе во всех центральных банках отношения примерно одинаковые - они курсы берут друг у друга, только свою валюту сами относительно других позиционируют.

   
 
 автор: мармон   (24.02.2007 в 11:57)   письмо автору
 
 

на вашем сайте есть скрипт курса валют. как узнать переменые остальных валют и как правельно их вставить интересует гривна к долару к евро и можно ли прицепить и остальных валют подскажите пожалуйста.
может к украискому банку это сделать?

   

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

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

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