Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kurs Nbp
Forum PHP.pl > Forum > Gotowe rozwiązania
rybosom
offtopic.gif
kicaj
Wyedytuj posta i wstaw kod miedzy [php]. Bedzie bardziej przejzysty i ktos napewno zauwazy blad.

Napisz jaki blad. Dostajesz jakis komunikat? Co nie dziala?
Bakus
Pousuwałem wszystkie "or die();", by dać się wypowiedzieć nt. błędu php i wszystko działa...
  1. <?php
  2. // Początek pobierania linku do kursu walut w formacie XML...
  3. $a = &#092;"0\";
  4. $connect = fopen(&#092;"http://www.nbp.pl/kursy/kursya.html\", \"r\");
  5. while (!feof ($connect)) {
  6.  $a++;
  7.  $buffer = fgets($connect, 4096);
  8.  if($a==&#092;"166\") {
  9.  $link = $buffer;
  10.  }
  11. };
  12. fclose($connect);
  13. // Koniec pobierania linku do kursu walut w formacie XML
  14.  
  15. // Wycinanie linku
  16. $link1 = strstr($link, 'xml');
  17. $link2 = substr($link1, '0', '19');
  18. $link = &#092;"http://www.nbp.pl/kursy/\".$link2;
  19. // Koniec. Link w zmiennej $link.
  20.  
  21. // Pobieranie arkusza XML
  22. $a = &#092;"0\";
  23. $connect = fopen($link, &#092;"r\");
  24. while (!feof ($connect)) {
  25.  $a++;
  26.  $buffer = fgets($connect, 4096);
  27.  if($a==&#092;"4\") {
  28.  $datak = $buffer;
  29.  }
  30.  elseif($a==&#092;"3\") {
  31.  $numerk = $buffer;
  32.  }
  33.  elseif($a==&#092;"6\") {
  34.  $waluta1 = $buffer;
  35.  }
  36.  elseif($a==&#092;"8\") {
  37.  $symbol1 = $buffer;
  38.  }
  39.  elseif($a==&#092;"9\") {
  40.  $kurs1 = $buffer;
  41.  }
  42.  elseif($a==&#092;"30\") {
  43.  $waluta2 = $buffer;
  44.  }
  45.  elseif($a==&#092;"32\") {
  46.  $symbol2 = $buffer;
  47.  }
  48.  elseif($a==&#092;"33\") {
  49.  $kurs2 = $buffer;
  50.  }
  51.  elseif($a==&#092;"24\") {
  52.  $waluta3 = $buffer;
  53.  }
  54.  elseif($a==&#092;"26\") {
  55.  $symbol3 = $buffer;
  56.  }
  57.  elseif($a==&#092;"27\") {
  58.  $kurs3 = $buffer;
  59.  }
  60.  elseif($a==&#092;"54\") {
  61.  $waluta4 = $buffer;
  62.  }
  63.  elseif($a==&#092;"56\") {
  64.  $symbol4 = $buffer;
  65.  }
  66.  elseif($a==&#092;"57\") {
  67.  $kurs4 = $buffer;
  68.  }
  69. };
  70. fclose($connect);
  71. echo &#092;"Średnie kursy walut nr \".$numerk.\" z dnia \".$datak.\" wg NBP (nazwa waluty, symbol, średni kurs): \".$waluta1.\" <b>(\".$symbol1.\")</b>: <b>\".$kurs1.\"</b>;&nbsp;&nbsp;\".$waluta2.\" <B>(\".$symbol2.\")</B>: <B>\".$kurs2.\"</B>;&nbsp;&nbsp;\".$waluta3.\" <B>(\".$symbol3.\")</B>: <B>\".$kurs3.\"</B>;&nbsp;&nbsp;\".$waluta4.\" <B>(\".$symbol4.\")</B>: <B>\".$kurs4.\"</B>.\";
  72. ?>
Źródło wyniku wykonywania skryptu:
Cytat
¦rednie kursy walut nr    <numer_tabeli>175/A/NBP/2004</numer_tabeli>
z dnia    <data_publikacji>2004-09-07</data_publikacji>
wg NBP (nazwa waluty, symbol, ¶redni kurs):      <nazwa_waluty>dolar amerykański</nazwa_waluty>
<b>(      <kod_waluty>USD</kod_waluty>
)</b>: <b>      <kurs_sredni>3,6187</kurs_sredni>
</b>;&nbsp;&nbsp;      <nazwa_waluty>euro</nazwa_waluty>
<B>(      <kod_waluty>EUR</kod_waluty>
)</B>: <B>      <kurs_sredni>4,3790</kurs_sredni>
</B>;&nbsp;&nbsp;      <nazwa_waluty>dolar kanadyjski</nazwa_waluty>
<B>(      <kod_waluty>CAD</kod_waluty>
)</B>: <B>      <kurs_sredni>2,7878</kurs_sredni>
</B>;&nbsp;&nbsp;      <nazwa_waluty>funt szterling</nazwa_waluty>
<B>(      <kod_waluty>GBP</kod_waluty>
)</B>: <B>      <kurs_sredni>6,4497</kurs_sredni>
</B>.
co w przeglądarce daje:
Cytat
Średnie kursy walut nr 175/A/NBP/2004 z dnia 2004-09-07 wg NBP (nazwa waluty, symbol, średni kurs): dolar amerykański ( USD ): 3,6187 ;  euro ( EUR ): 4,3790 ;  dolar kanadyjski ( CAD ): 2,7878 ;  funt szterling ( GBP ): 6,4497 .


UpDated:
Napisałem własnyskrypcik do tego... Użytkowanie jest IMHO łatwiejsze... cool.gif
  1. <pre>
  2. <?php
  3. $data = implode('', file(&#092;"http://www.nbp.pl/kursy/kursya.html\"));
  4. eregi(&#092;"<a href=\"xml/(.*).xml\">\", $data, $array);
  5. $data = implode('', file(&#092;"http://www.nbp.pl/kursy/xml/\" . $array[1] . \".xml\"));
  6.  
  7. $replace = array(&#092;"  \" => '', \"rn\" => '', \"<pozycja>\" => '', \"<nazwa_waluty>\" => '$kurs[\"', \"</nazwa_waluty>\" => '\"] = array(', \"<przelicznik>\" => '\"', \"</przelicznik>\" => '\", ', \"<kod_waluty>\" => '\"', \"</kod_waluty>\" => '\", ', \"<kurs_sredni>\" => '\"', \"</kurs_sredni>\" => '\"', \"</pozycja>\" => \");n\", \"</tabela_kursow>\" => '', '<?xml version=\"1.0\" encoding=\"ISO-8859-2\"?><tabela_kursow typ=\"A\"><numer_tabeli>' => '$kurs[\"tabela\"] = \"', '</numer_tabeli>' => '\";' . \"n\", '<data_publikacji>' => '$kurs[\"data_publikacji\"] = \"', '</data_publikacji>' => '\";' . \"n\");
  8.  
  9. $data = str_replace(array_keys($replace), array_values($replace), $data);
  10. eval($data);
  11. print_r($kurs);
  12. ?>
  13. </pre>
Wynik działania:
Kod
Array
(
    [tabela] => 175/A/NBP/2004
    [data_publikacji] => 2004-09-07
    [dolar amerykański] => Array
        (
            [0] => 1
            [1] => USD
            [2] => 3,6187
        )
[...część walut wyciąłem...]
    [SDR (MFW)] => Array
        (
            [0] => 1
            [1] => haha.gifR
            [2] => 5,2656
        )

)
b2n
BAKUS NAPISAŁ TAK:
Cytat
<?php
$data = implode('', file(\"http://www.nbp.pl/kursy/kursya.html\"));
eregi(\"<a href=\"xml/(.*)\.xml\">\", $data, $array);
$data = implode('', file(\"http://www.nbp.pl/kursy/xml/\" . $array[1] . \".xml\"));

$replace = array(\"  \" => '', \"\r\n\" => '', \"<pozycja>\" => '', \"<nazwa_waluty>\" => '$kurs[\"', \"</nazwa_waluty>\" => '\"] = array(', \"<przelicznik>\" => '\"', \"</przelicznik>\" => '\", ', \"<kod_waluty>\" => '\"', \"</kod_waluty>\" => '\", ', \"<kurs_sredni>\" => '\"', \"</kurs_sredni>\" => '\"', \"</pozycja>\" => \");\n\", \"</tabela_kursow>\" => '', '<?xml version=\"1.0\" encoding=\"ISO-8859-2\"?><tabela_kursow typ=\"A\"><numer_tabeli>' => '$kurs[\"tabela\"] = \"', '</numer_tabeli>' => '\";' . \"\n\", '<data_publikacji>' => '$kurs[\"data_publikacji\"] = \"', '</data_publikacji>' => '\";' . \"\n\");

$data = str_replace(array_keys($replace), array_values($replace), $data);
eval($data);
print_r($kurs);
?>


Skrypcik działa elegancko ale ze względu na fakt że zupełnie się nie znam na tablicach... mam pytanie co w przypadku : http://www.nbp.pl/Kursy/KursyB.html
bo to jest skrypt dla tabeli A starałem się go przerobić dodajądz <nazwa_kraj> ale nie hula kto wie jak to przerobić dla tabeli B ?
Baki
Bakus popelniles bardzo piekny skrypt!
dzieki
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.