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
hispano
post
Post #2





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

Posty w temacie


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: 27.12.2025 - 20:52