Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobranie aktualnego kursu!
Forum PHP.pl > Forum > XML, AJAX > XML
vcs
Ptrzebuje sobie pobrać do tablicy aktualny kurs waluty takiej jak USD GBP np.
$waluta['USD']= 3,1848;

do tej zmiennej potrzebuje wpisać aktualny kurs i musze kurs pobrac ze stronki np.:
http://www.nbp.pl/Kursy/KursyA.html

jak pobrac czysto tylko kurs USD bo jak bende wiedział jak go pobrać to sobie juz poradze z następną walutą!

Jest tam tez dostepny plik xml ale znowu nieumiem obslugi xml przez php i mam zamało czasu by się jej nauczyć po swojemu. Najchętniej bym był zadowlony jakbymi ktoś napisał jak w najprostszy sposób pobrać z tego pliku xml lub html te kursy walut!

Z góre dziękuje za pomoc!
sf
Bez parsowania xmla.. pobierasz plik i wyrazeniem regularnym go przeszukujesz.

<td class="bg1">dolar amerykański</td>
<td class="bg1">1 USD</td>
<td class="bg1">3,1848</td>

wyciagasz walute i przelicznik
vcs
NO dobra ale jak to zrobić jak po tym przlecieć i zpisać w łatwy sposób bo ja zabardzo niewiem jak to mam zrobić !
sf
Wydaje mi sie, ze forum ma bardziej pomagac przy problemach, a jesli chcesz gotowy kod to poprostu proponowalbym dzial praca oferowana.

Jesli potrzebne Ci nazwy funkcji to : pobierasz plik za pomoca np fsockopen , potem robisz petle while i uzywasz preg_match i wydobywasz dane. Sam kiedys takie cos pisalem.. 2 dni i bedziesz mial. Osobiscie teraz uzylbym parsowania tego pliku xml.
mhs
Cytat(vcs @ 2005-09-11 01:21:03)
Jest tam tez dostepny plik xml ale znowu nieumiem obslugi xml przez php i mam zamało czasu by się jej nauczyć po swojemu. Najchętniej bym był zadowlony jakbymi ktoś napisał jak w najprostszy sposób pobrać z tego pliku xml lub html te kursy walut!

Z góre dziękuje za pomoc!

Pobranie walut na stronę z pliku XML to kilka linijek kodu, a zrozumienie tego to kilka minut. Wpisz w wyszukiwarkę (google) "NBP" i na pierwszej pozycji dostaniesz to czego oczekujesz.
dr_bonzo
Temat byl juz wielokrotnie poruszany -- na forum powinny sie znajdowac gotowe skrypty do pobierania tych danych.

Najbardziej denerwuje mnie ze NBP zmienia za kazdym razem nazwe pliku XML.
sf
http://www.nbp.pl/Kursy/xml/dir.txt - chyba tak latwiej pobrac aktualny kurs niz przeszukiwac plik html winksmiley.jpg
NoiseMc
A ja sobie poeksperymentowałem, może się komuś przyda:

Zczytywanie aktualnych kursów:
  1. <?php
  2.  
  3. $resPolalczenie = fsockopen ( "www.nbp.pl", 80 );
  4.  
  5. if ( $resPolalczenie )
  6. {
  7. /* Zczytuję nazwy wszystkich XML - i z kursami walut */
  8.  
  9. $strHeaders = 'GET /Kursy/xml/dir.txt HTTP/1.0' . "rn"; 
  10. $strHeaders .= 'Host: www.nbp.pl' . "rn";
  11. $strHeaders .= 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.7.10) Gecko/20050717 Firefox/1.0.6' . "rnrn";
  12.  
  13. fputs ( $resPolalczenie, $strHeaders );
  14.  
  15. while ( ! feof ( $resPolalczenie ) ) 
  16. {
  17. /* Wrzucam je do tabeli */
  18. $arrPlikiXML[] = fgets ( $resPolalczenie, 128 ); 
  19. }
  20.  
  21. /* Odwracam kolejność tabeli */
  22. $arrPlikiXML = array_reverse ( $arrPlikiXML ); 
  23.  
  24. /* Zczytuję nazwę najaktualniejszego */
  25. $strDzisiejszyXML = trim ( $arrPlikiXML[0] ); 
  26.  
  27. fclose ( $resPolalczenie );
  28. }
  29.  
  30. $resPolalczenie = fsockopen ( "www.nbp.pl", 80 );
  31.  
  32. if ( $resPolalczenie )
  33. {
  34. /* Otwieram najaktualniejszy plik XML z kursami walut */
  35.  
  36. $strHeaders = 'GET /Kursy/xml/' . $strDzisiejszyXML . '.xml HTTP/1.0' . "rn"; 
  37. $strHeaders .= 'Host: www.nbp.pl' . "rn";
  38. $strHeaders .= 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.7.10) Gecko/20050717 Firefox/1.0.6' . "rnrn";
  39.  
  40. fputs ( $resPolalczenie, $strHeaders );
  41.  
  42. while ( ! feof ( $resPolalczenie ) ) 
  43. {
  44. /* Wrzucam do tablicy */
  45. $arrXMLKursy[] = fgets ( $resPolalczenie, 128 ); 
  46. }
  47.  
  48. $intArrLn = count ( $arrXMLKursy );
  49.  
  50. /* Ucinam 10 pierwszysch linii, które są nagłówkami HTTP wysłanymi przez NBP */
  51. for ( $i = 11 ; $i < $intArrLn ; $i++ ) 
  52. {
  53. if ( $i == 12 )
  54. {
  55. /* Dokładam link do XSL, żeby sformatowac dane */
  56. $strXMLKursy .= '<?xml-stylesheet type="text/xsl" href="style.xsl"?>' . "rn"; 
  57. }
  58.  
  59. $strXMLKursy .= $arrXMLKursy[$i];
  60. }
  61.  
  62. /* Zawartość będzie wyrzucana do przeglądarki jako xml */
  63. header ( 'Content-Type: text/xml' ); 
  64.  
  65. /* Wyrzucam XML do przeglądarki */
  66. print ( $strXMLKursy ); 
  67.  
  68. fclose ( $resPolalczenie );
  69. }
  70. ?>


Formatowanie:
  1. <?xml version="1.0" encoding="iso-8859-2"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3.      <xsl:template match="/">
  4.            <html>
  5.                  <head>
  6.                        <title>
  7.                              <xsl:apply-templates select="//numer_tabeli" />
  8.                        </title>
  9.                        <style type="text/css">
  10.                              body, td
  11.                              {
  12.                                    font-family: Georgia, Arial;
  13.                                    font-size: 12px;
  14.                              }                        
  15.                              td, th
  16.                              {
  17.                                    border: 1px dashed black;
  18.                              }
  19.                              th
  20.                              {
  21.                                    background-color:#EEEEEE;
  22.                              }
  23.                              h1
  24.                              {
  25.                                    font-size:16px;
  26.                                    font-weight:bold;
  27.                              }                        
  28.                        </style>
  29.                  </head>
  30.                  <body>
  31.                        <h1>
  32.                              <xsl:apply-templates select="//numer_tabeli" />
  33.                              <br />
  34.                              <xsl:apply-templates select="//data_publikacji" />
  35.                        </h1>
  36.                        <table cellpadding="5">
  37.                              <tr>
  38.                                    <th><strong>Waluta</strong></th>
  39.                                    <th><strong>Kurs</strong></th>
  40.                              </tr>
  41.                              <xsl:apply-templates select="//pozycja" />
  42.                        </table>
  43.                  </body>
  44.            </html>
  45.      </xsl:template>
  46.      <xsl:template match="pozycja">
  47.            <tr>
  48.                  <td><xsl:value-of select="nazwa_waluty" /> <xsl:value-of select="kod_waluty" /></td>
  49.                  <td><xsl:value-of select="kurs_sredni" /></td>
  50.            </tr>
  51.      </xsl:template>
  52.      <xsl:template match="tabela_kursow">
  53.            <xsl:value-of select="numer_tabeli" />
  54.      </xsl:template>
  55.      <xsl:template match="tabela_kursow">
  56.            <xsl:value-of select="data_publikacji" />
  57.      </xsl:template>
  58. </xsl:stylesheet>
lutel
Hula, zastasowane w kursach walut na http://www.przelicznik.pl
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-2025 Invision Power Services, Inc.