Dodawanie tablic - kurs walut

Forum poświęcone skryptom, językom programowania, serwerom i hostingowi, domenom itp.
  • Autor
  • Wiadomość
Offline

armen10

  • Posty: 2
  • Rejestracja: 02 sierpnia 2016, 13:47

Dodawanie tablic - kurs walut

Post13 września 2016, 22:29

Witam
mam skrypt do którego chciałbym z bazy dodawać własny współczynnik. To znaczy do kursu bieżącego dodać swój mnożnik (liczbę) mógłby mi ktoś pomóc ?

Kod: Zaznacz cały
<?php

function convert($text) {
   // Zmień na żądane kodowanie znaków - puste pozostawia UTF-8
   $charset = '';

   if($charset && function_exists('iconv')) {
      return iconv('utf-8', $charset, $text);
   }
   elseif($charset && function_exists('recode_string')) {
      return recode_string('utf8...'.$charset, $text);
   }
   else
   {
      return $text;
   }
}

class kursy {
   /* zawartość arkusza XML z kursami */
   private $contents = '';
   
   function __construct($url, $cache = 'kursy_cache.txt',
               $lastupdate = '12:16 -1 day', $thisupdate = '12:16') {
      // Plik z cache:
      // $cache
      // Czy dane w cache w cache aktualne?
      $recent = TRUE;
      
      // Daty ostatnich aktualizacji
      $lastupdate = strtotime($lastupdate);
      $thisupdate = strtotime($thisupdate);
      
      // Sprawdzenie możliwości zapisania kursów
      if( ( !file_exists($cache) AND !is_writable(dirname($cache)) )
         OR ( file_exists($cache) AND !(is_writable($cache)) ) ) {
         // Plik cache "nie działa"
         $cache = '';
      }
      else
      {
         // Dane są aktualne?
         if(@filemtime($cache) < $lastupdate) {
            $recent = FALSE;
         }
         elseif(time() > $thisupdate && @filemtime($cache) < $thisupdate) {
            $recent = FALSE;
         }
      }
      
      // Nie istnieje możliwość zapisu w cache lub dane są nieaktualne
      if($cache == '' OR !$recent) {
         // Link do arkusza XML
         $this->contents = file_get_contents($url);
         if($this->contents == FALSE) {
            throw new Exception('Nie udało się pobrać kursów walut.');
         }
         
         // Można zapisać do cache'a
         if($cache != '') {
            // Zapamiętujemy arkusz
            file_put_contents($cache, $this->contents);
         }
      }
      else
      {
         // Ładujemy zapisane dane
         $this->contents = file_get_contents($cache);
      }
   }
   
   function znajdz($fields) {
      if(!is_array($fields)) {
         $fields = array($fields);
      }
      
      $last = libxml_use_internal_errors(TRUE);
      $info = new SimpleXMLElement($this->contents);
      libxml_use_internal_errors($last);
      
      /* tablica wypełniana kursami */
      $rates = array(
         'numer_tabeli' => (string)$info->numer_tabeli,
         'data_publikacji' => (string)$info->data_publikacji
      );
      
      foreach($info->pozycja as $v) {
         $kod = (string)$v->kod_waluty;
         $rates[$kod] = array(
            'nazwa' => convert((string)$v->nazwa_waluty),
            'ilosc' => (string)$v->przelicznik

         );
         foreach($fields as $field) {
            $rates[$kod][$field] = (string)$v->$field;
         };
      }
      
      return $rates;
   }
}

try {
   // adres do kursów, plik do cache'owania, poprzednia aktualizacja, najbliższa aktualizacja
   $kursy = new kursy('http://nbp.pl/kursy/xml/LastA.xml', 'kursy_cache.txt', '12:16 -1 day', '12:16');
   $waluta = $kursy->znajdz(array('kurs_sredni'));
   
   echo $waluta['USD']['ilosc'].' USD: '.$waluta['USD']['kurs_sredni'] ."<br />";
   echo $waluta['EUR']['ilosc'].' EUR: '.$waluta['EUR']['kurs_sredni'] ."<br />";

   print_r($waluta);
}
catch(Exception $e) {
   echo 'Błąd przy wyświetlaniu kursów walut.';
   // Aby pokazać błąd, odkomentuj poniższą linię:
    var_dump($e);
}
?>

Wróć do Webmastering

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość