Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> kurs walut
Lonas
post
Post #1





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

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


Hej uzywalem dotychczas skryptu ktory pokazywal mi kurs walut z NBP - czy NBP cos zmienil ? teraz wyskakuje komunikat :


Warning: fopen(http://www.nbp.pl/kursy/) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /home/users/jakarusa/public_html/CMS/test.php on line 29
Błšd przy łšczeniu

a skrypt wyglada tak :
  1. <?php
  2. /*********************************
  3.  * Kursy walut *
  4.  * Copyrigt Š by Jacek Kowalski *
  5.  *  *
  6.  * Wersja 1.0 dla Skryptoteka.pl *
  7.  *********************************/
  8. // Początek pobierania linku do kursu walut w formacie XML...
  9. $a = "0";
  10. $connect = fopen("http://www.nbp.pl/kursy/kursya.html", "r") or die("Błąd przy łączeniu");
  11. while (!feof ($connect)) {
  12.  $a++;
  13.  $buffer = fgets($connect, 4096) or die("Błąd przy odczycie");
  14.  if($a=="166") {
  15.  $link = $buffer;
  16.  }
  17. };
  18. fclose($connect) or die("Błąd przy zamykaniu połączenia");
  19. // Koniec pobierania linku do kursu walut w formacie XML
  20.  
  21. // Wycinanie linku
  22. $link1 = strstr($link, 'xml');
  23. $link2 = substr($link1, '0', '19');
  24. $link = "http://www.nbp.pl/kursy/".$link2;
  25. // Koniec. Link w zmiennej $link.
  26.  
  27. // Pobieranie arkusza XML
  28. $a = "0";
  29. $connect = fopen($link, "r") or die("Błąd przy łączeniu");
  30. while (!feof ($connect)) {
  31.  $a++;
  32.  $buffer = fgets($connect, 4096) or die("Błąd przy odczycie");
  33.  if($a=="4") {
  34.  $datak = $buffer;
  35.  }
  36.  elseif($a=="3") {
  37.  $numerk = $buffer;
  38.  }
  39.  elseif($a=="6") {
  40.  $waluta1 = $buffer;
  41.  }
  42.  elseif($a=="8") {
  43.  $symbol1 = $buffer;
  44.  }
  45.  elseif($a=="9") {
  46.  $kurs1 = $buffer;
  47.  }
  48.  elseif($a=="30") {
  49.  $waluta2 = $buffer;
  50.  }
  51.  elseif($a=="32") {
  52.  $symbol2 = $buffer;
  53.  }
  54.  elseif($a=="33") {
  55.  $kurs2 = $buffer;
  56.  }
  57.  elseif($a=="24") {
  58.  $waluta3 = $buffer;
  59.  }
  60.  elseif($a=="26") {
  61.  $symbol3 = $buffer;
  62.  }
  63.  elseif($a=="27") {
  64.  $kurs3 = $buffer;
  65.  }
  66.  elseif($a=="54") {
  67.  $waluta4 = $buffer;
  68.  }
  69.  elseif($a=="56") {
  70.  $symbol4 = $buffer;
  71.  }
  72.  elseif($a=="57") {
  73.  $kurs4 = $buffer;
  74.  }
  75. };
  76. fclose($connect) or die("Błąd przy zamykaniu połączenia");
  77. // Pobrano arkusz XML i wyniki do zmiennych.
  78. // Wyświetlanie...
  79. echo " <b><center><font SIZE="1" color="black" face="verdana">NBP z dnia <br>".$datak."</b></center></font><br> <font SIZE="1" color="black" face="verdana">".$waluta1."</FONT><br> <font SIZE="1" color="black" face="verdana"><b>(".$symbol1.")</b></FONT> <b> <font SIZE="1" color="black" face="verdana">".$kurs1."</b></FONT><br> <font SIZE="1" color="black" face="verdana">".$waluta2."</font> <br> <font SIZE="1" color="black" face="verdana"><B>(".$symbol2.")</B> </font><B> <font SIZE="1" color="black" face="verdana">".$kurs2."</font></B><br> <font SIZE="1" color="black" face="verdana">".$waluta3."</font> <br> <font SIZE="1" color="black" face="verdana"><B>(".$symbol3.")</font></B> <font SIZE="1" color="black" face="verdana"> <B>".$kurs3."</font></B><br> <font SIZE="1" color="black" face="verdana">".$waluta4."</font><br> <font SIZE="1" color="black" face="verdana"> <B>(".$symbol4.")</font></B> <font SIZE="1" color="black" face="verdana"> <B> <font SIZE="1" color="black" face="verdana">".$kurs4."</font></B><br>"
  80. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
cmike
post
Post #2





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 17.05.2004
Skąd: Kraków

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


  1. <?php
  2. $txtData = 'http://www.nbp.pl/kursy/kursya.html';
  3. if ( $txtParsed = @implode('', file($txtData)) )
  4. {
  5.  $link = $txtParsed;
  6. $link1 = strstr($link, 'xml');
  7. $link2 = substr($link1, '0', '19');
  8. $dt = substr($link2, '9', '6');
  9. $d = $dt[4].$dt[5];
  10. $m = $dt[2].$dt[3];
  11. $r = "20".$dt[0].$dt[1];
  12. $dat_wal = $r.'.'.$m.'.'.$d;
  13. $link = "http://www.nbp.pl/kursy/".$link2;
  14. }
  15.  
  16. $wersja = phpversion();
  17. if ($wersja[0]>4)
  18. {
  19. $xml = simplexml_load_file($link);
  20. foreach ($xml->pozycja as $wpis)
  21. {  
  22. echo "<li>".$wpis->nazwa_waluty."(".$wpis->kod_waluty.") ->kurs średni: ".$wpis->kurs_sredni."</li>";
  23. }
  24. }
  25. else
  26. {
  27. $xml_link = $link;
  28. $currentTag = "";
  29. $startpos = 0;
  30. $encoding = 0;
  31. $xml_items = array();
  32.  
  33. function startTag($parser, $name, $attrs)
  34. {
  35. global $currentTag, $startpos;
  36. $currentTag = $name;
  37. if ($currentTag=='POZYCJA') $startpos++;
  38. }
  39.  
  40. function endTag($parser, $name)
  41. {
  42.  global $currentTag;
  43.  $currentTag = "";
  44. }
  45.  
  46. function characterData($parser, $data)
  47. {
  48. global $currentTag, $startpos, $xml_items;
  49. if ($startpos > 0) {
  50.  switch ($currentTag) {
  51.  case 'NAZWA_WALUTY' : $xml_items[$startpos]['NAZWA_WALUTY'] .=$data; break;
  52.  case 'KOD_WALUTY': $xml_items[$startpos]['KOD_WALUTY'].=$data; break;
  53.  case 'KURS_SREDNI': $xml_items[$startpos]['KURS_SREDNI'].=$data; break;
  54.  }
  55.  
  56. } else {
  57.  
  58.  
  59. }
  60.  
  61. }
  62.  
  63. $xml_link = parse_url($xml_link);
  64.  
  65. $header = "GET ".$xml_link["path"].(isset($xml_link["query"]) ? "?".$xml_link["query"] : false)." HTTP/1.0rn";
  66. $header .= "Host: ".$xml_link['host']."rn";
  67. $header .= "Content-type: application/x-www-form-urlencodedrn";
  68. $header .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; www.inteco.win.pl)rn";
  69. $header .= "Content-length: " . strlen($request) . "rnrn";
  70.  
  71. if ($xml_read = @fsockopen($xml_link['host'], ($xml_link['port']>0 ? $xml_link['port'] : 80) , $err_num, $err_msg, 10)) {
  72.  
  73.  fputs($xml_read, $header . $request);
  74.  
  75.  $xml_parser = xml_parser_create();
  76.  xml_set_element_handler($xml_parser, "startTag", "endTag");
  77.  xml_set_character_data_handler($xml_parser, "characterData");
  78.  
  79.  while ($data = fread($xml_read, 4096)) {
  80. if ((empty($encoding)) && (preg_match("#<?xml.+(|encoding="([w-]+)").*(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) >#i",$data,$enc))) {
  81. $encoding = preg_replace("#<?xml.+encoding="([w-]+)".*?>#s","1",$enc[0]);
  82. $data = preg_replace('#(.*?)(<?xml)#s','2',$data);
  83. }
  84.  
  85. if (!empty($encoding)) {
  86. if (!xml_parse($xml_parser, $data, feof($xml_read))) {
  87. die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser)));
  88.  
  89. }
  90. }
  91.  }
  92.  
  93.  xml_parser_free($xml_parser);
  94. }
  95. echo '<table width="100%" border="0" cellspacing="1" cellpadding="0" align="center" class="tbl-border">';
  96. for ($i=1;$i<count($xml_items);$i++)
  97. {
  98. if($xml_items[$i]['KOD_WALUTY']=="USD" || $xml_items[$i]['KOD_WALUTY']=="EUR") {
  99. if($klasa=="tbl1") {$klasa="tbl2";} else {$klasa="tbl1";}
  100. echo '<tr>
  101. <td class="'.$klasa.'">'.$xml_items[$i]['NAZWA_WALUTY'].'</td><td class="'.$klasa.'" align="center">'.$xml_items[$i]['KOD_WALUTY'].'</td><td class="'.$klasa.'" align="center"><b>'.$xml_items[$i]['KURS_SREDNI']."</b></td>
  102. </tr>";
  103. }
  104. }
  105. echo '</table>';
  106. }



To przykładowy kod - mnie interesował tylko dolar i euro.
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: 5.10.2025 - 15:28