Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pobieranie danych z NBP
stoklosa
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 30.04.2003

Ostrzeżenie: (0%)
-----


Nie mogę sobie poradzić z skryptem, którego zadaniem było by pobieranie danych z kursu walut NBP. Jeśli mógłby ktoś nanieś poprawki i rozbudować o pobieranie więcej niż jednego kursu, by później można było wstawiać do tekstu za pomocą ziemnych. Oto on:

Kod
<?
//otwarcie strony zrodlowej
$file=fopen("http://www.nbp.pl/Kursy/KursyA.html","r");
//sprawdzenie poprawnosci otwarcia pliku
if (!$file) {
  echo "Blad otwarcia strony zrodlowej\n";
  exit;
}
do {
  $line = fgets($file,82);
} while ((!feof($file)) and
  (!eregi('^.*$', $line,$out)));

fclose($file);
echo $out[1];
?>


Pozdrawiam, Łukasz Stokłosa!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
kamiox
post
Post #2





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 13.10.2003
Skąd: Małopolska

Ostrzeżenie: (0%)
-----


Jeśli możesz wykorzystać php5 to np. w ten sposób:

  1. <?php
  2. $tabela_kursow = simplexml_load_file('http://www.nbp.pl/Kursy/xml/a194z041004.xml'); 
  3. foreach($tabela_kursow->pozycja as $pozycja) {
  4. echo 'nazwa waluty : ' ,$pozycja->nazwa_waluty.'<br />';
  5. echo 'kod waluty : ' ,$pozycja->kod_waluty.'<br />';
  6. echo 'kurs średni : ' , $pozycja->kurs_sredni.'<br />';
  7. }
  8. ?>


Ten post edytował kamiox 4.10.2004, 18:58:28
Go to the top of the page
+Quote Post
stoklosa
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 30.04.2003

Ostrzeżenie: (0%)
-----


Nadal działam na php4, nie dało by się przerobić mojego powyżej podanego skryptu?
(IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif) (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif) (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)
Go to the top of the page
+Quote Post
Sh4dow
post
Post #4





Grupa: Zarejestrowani
Postów: 569
Pomógł: 0
Dołączył: 17.08.2003
Skąd: Dąbrowa Górnicza

Ostrzeżenie: (0%)
-----


polecam poszukac w manualu o xml'u w komentarzach sa skrypty ktore bez xml'a wydobeda dane z pliku i dadza go do tablicy, z tablicy t juz sam bedziesz musial sobie dac rade.
Polecam poszukac tez na phpclasses.org tam jest tego dosc duzo
Go to the top of the page
+Quote Post
hispano
post
Post #5





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 27.07.2004

Ostrzeżenie: (0%)
-----


Witam,

Kiedyś napisałem skrypcik dla telfonów IP Cisco. Mała przeróbka i gra. Może wydać się toprne, bo bardziej operuje na tekście niż na xml'u. Ale cóż po nitce do kłębka.
Powodzenia (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
  1. <?php
  2. $adres = &#092;"http://www.nbp.pl/Kursy/\";
  3. $plik = fopen (&#092;"http://www.nbp.pl/Kursy/KursyA.html\", \"r\");
  4. //$plik = str_replace( '\"', ' ', $plik );
  5. while (!feof ($plik)) {
  6.  $bufor = fgets($plik, 4096);
  7.  $pos = strpos($bufor,'xml');
  8.  if (!$pos === false)
  9.  {
  10. $bufor = str_replace( '\"', ' ', $bufor );
  11. $pl=substr($bufor, strpos($bufor,'xml'), strpos($bufor,'.')-strpos($bufor,'xml')+4);
  12. $adres .= $pl;  //doklejanie
  13. //echo $adres;
  14. //echo '<br>';
  15. }
  16. }
  17. fclose ($plik);
  18. $lines = file($adres);
  19.  
  20. $i = 0;
  21.  header(&#092;"Content-type: text/xml\");
  22.  header(&#092;"Connection: close\");
  23.  header(&#092;"Expires: -1\");
  24. /* print \"<?xml version='1.0' encoding='ISO-8859-1'?>\";*/
  25.  print \"<CiscoIPPhoneText>\";
  26. while (strstr($lines[$i],'/tabela_kursow') === false)
  27.  {
  28. if (!strstr($lines[$i],'numer_tabeli') === false)
  29.  {  
  30.  preg_match(\"/<numer_tabeli>(.*?)</numer_tabeli>/\", $lines[$i],$subj);
  31.  print\"<Title>NBP nr.$subj[1]</Title>\";
  32.  }
  33. if (!strstr($lines[$i],'data_publikacji') === false)
  34.  {  
  35.  preg_match(\"/<data_publikacji>(.*?)</data_publikacji>/\", $lines[$i],$subj);
  36.  print\"<Prompt>Kursy walut z $subj[1]</Prompt>\";
  37.  print\"<Text>\";
  38.  }
  39. if (!strstr($lines[$i],'<pozycja>') === false)
  40.  {
  41. /* preg_match(\"/<nazwa_waluty>(.*?)</nazwa_waluty>/\", $lines[$i+1],$subj);print\"$subj[1] \";
  42.  $subj[1]=str_replace(chr(241),chr(110),$subj[1]);
  43.  $subj[1]=str_replace(chr(234),chr(101),$subj[1]);
  44.  $subj[1]=str_replace(chr(179),chr(108),$subj[1]);*/
  45.  preg_match(\"/<przelicznik>(.*?)</przelicznik>/\", $lines[$i+2],$subj);print\"$subj[1]\";
  46.  preg_match(\"/<kod_waluty>(.*?)</kod_waluty>/\", $lines[$i+3],$subj);print\"$subj[1]\";
  47.  preg_match(\"/<kurs_sredni>(.*?)</kurs_sredni>/\", $lines[$i+4],$subj);print\" $subj[1]n\";
  48.  
  49.  }
  50.  $i++; //a może nie co jeden byłoby szybciej??;)
  51.  };
  52.  print\"</Text>n\";
  53.  print\"</CiscoIPPhoneText>\";
  54. ?>


Ten post edytował hispano 7.10.2004, 10:03:00
Go to the top of the page
+Quote Post
northwest
post
Post #6





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


<?
$fp = fopen('http://www.nbp.pl/Kursy/KursyC.html','r');
while ($line=fgets($fp,10000)) {
$text.=$line;
}

fclose($fp);


$str = preg_match_all('#<td class="bg1">(.*?)</td>#si', $text, $jest);
if ($str) {

echo $jest[0][1].' - '.$jest[0][2].'<br>';
echo $jest[0][5].' - '.$jest[0][6].'<br>';
echo $jest[0][9].' - '.$jest[0][10].'<br>';
}
echo"aaaa: $jest[0][2]";
else {
echo 'NIE ZNALEZIONO';
}

?>


coś takiego powinno Ci pomóc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 02:28