Валюты. Убрать лишние цыфры

Тема в разделе "PHP", создана пользователем emone, 13 мар 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. emone

    emone Постоялец

    Регистр.:
    1 сен 2007
    Сообщения:
    133
    Симпатии:
    38
    Привет! подскажите пожалуйста как поменять формат вывода данных у валютной формы
    Этьа форма выводит курс валюты.
    спс за за парсер Инвейдеру
    PHP:
    <?

      
    // Получаем XML-файл с источника 
      
    $contentuc get_contentuc();  
      
    // Разбираем содержимое, при помощи регулярных выражений  
      
    $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$contentuc$out);  
      unset(
    $out[0]); 
      for(
    $i 0$i count($out[1]); $i++) 
      { 
        if(
    $out[2][$i] == 840$dollaruc $out[6][$i]; 
        if(
    $out[2][$i] == 978$eurouc $out[6][$i]; 
        if(
    $out[2][$i] == 643$rubuc $out[6][$i]; 
        if(
    $out[2][$i] == 826$steruc $out[6][$i]; 
        if(
    $out[2][$i] == 860$summuc $out[6][$i]; 
        if(
    $out[2][$i] == 974$belarusuc $out[6][$i]; 
        if(
    $out[2][$i] == 981$gruzijauc $out[6][$i]; 
        if(
    $out[2][$i] == 124$kanadauc $out[6][$i]; 
        if(
    $out[2][$i] == 203$chehijauc $out[6][$i]; 
        if(
    $out[2][$i] == 208$danijauc $out[6][$i]; 
        if(
    $out[2][$i] == 233$eestiuc $out[6][$i]; 
        if(
    $out[2][$i] == 392$japanuc $out[6][$i]; 
        if(
    $out[2][$i] == 398$kazahuc $out[6][$i]; 
        if(
    $out[2][$i] == 428$latvijauc $out[6][$i]; 
        if(
    $out[2][$i] == 440$litnauc $out[6][$i]; 
        if(
    $out[2][$i] == 498$moldovauc $out[6][$i]; 
      } 

      echo 
    "100 USD - <B>$dollaruc</B> UAH<br>"
      echo 
    "100 EUR - <B>$eurouc</B> UAH<br>"
      echo 
    "10 RUR - <B>$rubuc</B> UAH<br>"
      echo 
    "100 Фунтов стерлингов Соединенного королевства - <B>$steruc</B> UAH<br>"
      echo 
    "100 Узбекских сумм - <B>$summuc</B> UAH<br>"
      echo 
    "10 Белорусских рублей - <B>$belarusuc</B> UAH<br>"
      echo 
    "100 Грузинских лари - <B>$gruzijauc</B> UAH<br>"
      echo 
    "100 Канадских долларов - <B>$kanadauc</B> UAH<br>";
      echo 
    "100 Чешских крон - <B>$chehijauc</B> UAH<br>";
      echo 
    "100 Датских крон - <B>$danijauc</B> UAH<br>";
      echo 
    "100 Эстонских крон - <B>$eestiuc</B> UAH<br>";
      echo 
    "1000 Японских йен - <B>$japanuc</B> UAH<br>";
      echo 
    "100 Казахских теньге - <B>$kazahuc</B> UAH<br>";
      echo 
    "100 Латвийских лат - <B>$latvijauc</B> UAH<br>";
      echo 
    "100 Литовских лит - <B>$litnauc</B> UAH<br>";
      echo 
    "100 Молдавских леев - <B>$moldovauc</B> UAH<br>";


      function 
    get_contentuc()  
      {  
        
    // Формируем ссылку к источнику валюты 
        
    $link "http://www.bank-ua.com/export/currrate.xml";  
        
    // Загружаем HTML-страницу  
        
    $fd fopen($link"r");  
        
    $text="";  
        if (!
    $fd) echo "Курсы временно недоступны";  
        else  
        {  
          
    // Чтение содержимого файла в переменную $text  
          
    while (!feof ($fd)) $text .= fgets($fd4096);  
        }  
        
    // Закрыть открытый файловый дескриптор  
        
    fclose ($fd);  
        return 
    $text;  
      }  
    ?> 
    Она выводить как:
    USD\UHA 7.700000
    EUR\UHA 9.885545

    а нужно чтобы после коммы было одна или 2 значения.
    USD\UHA 7.7
    EUR\UHA 9.8
     
  2. serb80

    serb80 Писатель

    Регистр.:
    14 ноя 2008
    Сообщения:
    13
    Симпатии:
    1
    $out[6][$i] заменить на round($out[6][$i], 1);
     
    emone нравится это.
  3. t0os

    t0os

    Регистр.:
    21 окт 2007
    Сообщения:
    284
    Симпатии:
    36
    sprintf в помощь. Пример №6.
     
  4. BDSG

    BDSG

    Регистр.:
    28 фев 2009
    Сообщения:
    203
    Симпатии:
    109
    имхо здесь лучше money_format использовать..
    http://ru.php.net/manual/ru/function.money-format.php
     
  5. amxm

    amxm Создатель

    Регистр.:
    25 июл 2008
    Сообщения:
    18
    Симпатии:
    0
    sprintf, но лучше в таких парсерах разделять курс валюты от значения.
    так и в базу удобней занести и если что сортировать, и округлять значения можно и как хочешь с ними работать.
     
  6. helenfly

    helenfly Создатель

    Регистр.:
    6 мар 2009
    Сообщения:
    18
    Симпатии:
    0
    А как реализовать парсер обменников webmoney? Общие наметки есть, а как подступиться не знаю. Хотя бы где-нибудь найти пример такого скрипта.
    :nezn:
     
  7. snoop15

    snoop15 Создатель

    Регистр.:
    1 янв 2008
    Сообщения:
    25
    Симпатии:
    7
    Можем в 4 руки и в 2 головы сделать быстро и качественно...2 головы - твоя , моя..=)И руки - мои,твои..=)
     
Статус темы:
Закрыта.