Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] przeliczanie zł na $
Forum PHP.pl > Forum > Przedszkole
Lejto
Napisałem skrypt który pobiera kurs dolara
  1. $url = file_get_contents('http://nbp.pl/kursy/xml/c248z051223.xml');
  2. preg_match( '#<kurs_kupna>(.*?)</kurs_kupna>#', $url,$opis );
  3.  
  4. define('KURS', $opis[0]);
  5. [php]
  6. zamieniam tak aby było z . a nie z ,
  7. [php]
  8. $j = explode(',',KURS);
  9.  
  10. $kw = $j[0].'.'.$j[1];

teraz jak zamienić PLN na $? robię tak
  1. echo $kw * $kwota;

gdzie kwota to 3zł
ale nie działa
dostaje 0
dlaczego?
tehaha
sprawdź co zwraca preg_match bo wydaje mi się, że masz złe wyrażenie powinno być raczej:
  1. preg_match( '#<kurs_kupna>([^<>]*)</kurs_kupna>#', $url,$opis );
bo inaczej takie coś:
<kurs_kupna>3,2083</kurs_kupna>
<kurs_sprzedazy>3,2731</kurs_sprzedazy>
</pozycja>

<pozycja>
<nazwa_waluty>dolar australijski</nazwa_waluty>
<przelicznik>1</przelicznik>
<kod_waluty>AUD</kod_waluty>
<kurs_kupna>2,3429</kurs_kupna> może zostać dopasowane
Crozin
1. Od tego masz wersję w XMLu byś mógł to normalnie obsłużyć: SimpleXML
2. Zamiana przecinka na kropkę: str_replace

EDIT:
@tehaha: Przeczytaj o zachłanności selektorów w PCRE - dobrze ma.
Wicepsik
  1. $kw = 5;
  2. $xml = simplexml_load_file('http://nbp.pl/kursy/xml/c248z051223.xml');
  3. echo str_replace( ',', '.', $xml->pozycja[0]->kurs_kupna ) * 5;
outsider
  1. echo (float)$kw * (float)$kwota;
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.