![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 29.01.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam mam taki skrypcik do kursu walut[php:1:1f25bb204b] <?php
DEFINE('_N_COLOR','#004080'); //kolor czcionki nagłówka DEFINE('_W_COLOR','#000000'); //kolor czcionki wyników walut $f = @fopen("http://www.nbp.pl/Kursy/KursyA.html", "r"); if ($f) { while(!feof($f)) $strona.= fread($f,1024); fclose($f); $strona = preg_replace("/r/", " ", $strona); $strona = preg_replace("/n/", " ", $strona); preg_match("/z dnia <b>(.*?)</b>/", $strona, $zdnia); echo "<font color="._N_COLOR.">Kursy walut NBP z dnia ". $zdnia[1]."</font>"; preg_match_all ("/<tr valign="middle">.*?</tr>/", $strona, $sa); for ($i=0; $i<count($sa[0]); $i++) { preg_match("/new">(.*?)</td/", $sa[0][$i], $waluta); preg_match("/lne">(.*?)</td/", $sa[0][$i], $kurs); if (eregi("EUR",$waluta[1])) echo "<br><br><B><img src="/img_waluty/ue.gif"> <font color="._W_COLOR.">1 EUR - ".$kurs[1]."</font>"; if (eregi("USD",$waluta[1])) echo "<br><img src="/img_waluty/usa.gif"> <font color="._W_COLOR.">1 USD - ".$kurs[1]."</font>"; if (eregi("GBP",$waluta[1])) echo "<br><img src="/img_waluty/gb.gif"> <font color="._W_COLOR.">1 GBP - ".$kurs[1]."</font></b>"; } } ?>[/php:1:1f25bb204b] niestety od kilku dni cos sie zmienilo na stronce nbp i nie chce juz pobierac info o walutach. Co i jak zmienic zeby bylo okej ? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 445 Pomógł: 0 Dołączył: 21.12.2003 Skąd: Tomaszów Lubelski Ostrzeżenie: (10%) ![]() ![]() |
Jakby mógł, to umieć kod między
. Każdemu zrobisz przyjemnoć. :wink: -------------------- Don't worry, be happy!
Gadu-Gadu: 1687784 Darmowe komponenty na stronę WWW - licznik księga gości shoutbox chat kalendarz data godzina imieniny IP host przeglądarka odwiedzającego ankieta sonda |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 135 Pomógł: 0 Dołączył: 15.04.2004 Skąd: w-wa Ostrzeżenie: (0%) ![]() ![]() |
No na nowej stronce nie ma juz class="new", ani "lne", a Ty się do nich odwołujesz. Najprosciej bedzie chyba skorzystac z xml'a umieszczonego na stronce, i wyszukiwanie odpowiendnich danych miedze znacznikami tzn:
[php:1:5cf6cb2e67]<?php preg_match("/<kod_waluty>(.*?)</kod_waluty>/", $znalezione[0][$i], $waluta); preg_match("/<kurs_sredni>(.*?)</kurs_sredni>/", $znalezione[0][$i], $kurs); ?>[/php:1:5cf6cb2e67] |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 362 Pomógł: 0 Dołączył: 18.02.2004 Skąd: Knurów Ostrzeżenie: (0%) ![]() ![]() |
Ja pobieranie walut rozwiązuję w ten sposób:
[php:1:25e0aa8f26] <? $new = 'http://www.nbp.pl/Kursy/xml/a056z040319.xml'; $filename = 'waluty.xml'; $obj->tree = '$obj->xml'; $obj->xml = ''; function startElement($parser, $name, $attrs) { global $obj; // If var already defined, make array eval('$test=isset('.$obj->tree.'->'.$name.');'); if ($test) { eval('$tmp='.$obj->tree.'->'.$name.';'); eval('$arr=is_array('.$obj->tree.'->'.$name.');'); if (!$arr) { eval('unset('.$obj->tree.'->'.$name.');'); eval($obj->tree.'->'.$name.'[0]=$tmp;'); $cnt = 1; } else { eval('$cnt=count('.$obj->tree.'->'.$name.');'); } $obj->tree .= '->'.$name."[$cnt]"; } else { $obj->tree .= '->'.$name; } if (count($attrs)) { eval($obj->tree.'->attr=$attrs;'); } } function endElement($parser, $name) { global $obj; // Strip off last -> for($a=strlen($obj->tree);$a>0;$a--) { if (substr($obj->tree, $a, 2) == '->') { $obj->tree = substr($obj->tree, 0, $a); break; } } } function characterData($parser, $data) { global $obj; eval($obj->tree.'->data=''.$data.'';'); } $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); if (!($fp = fopen($filename, "r"))) { die("could not open XML input"); } while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } xml_parser_free($xml_parser); if($obj->xml->TABELA_KURSOW->DATA_PUBLIKACJI->data!=date("Y-m-d")){ $filename = $new; $obj->tree = '$obj->xml'; $obj->xml = ''; $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); if (!($fp = fopen($filename, "r"))) { die("could not open XML input"); } while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } xml_parser_free($xml_parser); } $arr = $obj->xml->TABELA_KURSOW->POZYCJA[6]; // aby pobrać inną walute zmień wartość klucza dla tablicy POZYCJA echo $arr->PRZELICZNIK->data . " ¥ = " . $arr->KURS_SREDNI->data . " zł"; ?> [/php:1:25e0aa8f26] Przykład na Jenach japońskich, ale przerobić to tylko kwestia zmiany jednej linijki |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 29.01.2004 Ostrzeżenie: (0%) ![]() ![]() |
witam ! cos jest nie tak lub cos zle robie bo wychodzi mi blad
Nie można wyświetlić strony XML Nie można przeglądać wejścia XML przy użyciu arkusza stylów . Popraw błąd, a następnie kliknij przycisk Odśwież lub spróbuj ponownie później. -------------------------------------------------------------------------------- Spacja nie jest dozwolona w tej lokalizacji. Błąd podczas przetwarzania zasobu 'http://www.e-tarnow.pl/waluty.xml'. Wiersz 1, Pozycja 3 [/url] |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 0 Dołączył: 19.04.2003 Skąd: Hamburg / Darlowo Ostrzeżenie: (0%) ![]() ![]() |
masz pustą linie na początku kodu . Musisz mieć plik waluty.xml . U mnie działa bez zarzutu.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 29.01.2004 Ostrzeżenie: (0%) ![]() ![]() |
[quote]masz pustą linie na początku kodu . Musisz mieć plik waluty.xml . U mnie działa bez zarzutu.[/quote]
hym [php:1:0afda29cb2]<?php $new = 'http://www.nbp.pl/Kursy/xml/a056z040319.xml'; $filename = 'waluty.xml'; $obj->tree = '$obj->xml'; $obj->xml = ''; <--- o to chodzi ? ?>[/php:1:0afda29cb2] co mam dac do pliku waluty.xml? ![]() |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 362 Pomógł: 0 Dołączył: 18.02.2004 Skąd: Knurów Ostrzeżenie: (0%) ![]() ![]() |
Kod z tego co wiem jest dobry, bo go sprawdzałem.
Wystarczy utworzyć pusty plik waluty.xml |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 1 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
[php:1:2b342d1add]<?php
$new = 'http://www.nbp.pl/Kursy/xml/a056z040319.xml'; $filename = 'waluty.xml'; $obj->tree = '$obj->xml'; $obj->xml = 'waluty.xml'; function startElement($parser, $name, $attrs) { global $obj; // If var already defined, make array eval('$test=isset('.$obj->tree.'->'.$name.');'); if ($test) { eval('$tmp='.$obj->tree.'->'.$name.';'); eval('$arr=is_array('.$obj->tree.'->'.$name.');'); if (!$arr) { eval('unset('.$obj->tree.'->'.$name.');'); eval($obj->tree.'->'.$name.'[0]=$tmp;'); $cnt = 1; } else { eval('$cnt=count('.$obj->tree.'->'.$name.');'); } $obj->tree .= '->'.$name."[$cnt]"; } else { $obj->tree .= '->'.$name; } if (count($attrs)) { eval($obj->tree.'->attr=$attrs;'); } } function endElement($parser, $name) { global $obj; // Strip off last -> for($a=strlen($obj->tree);$a>0;$a--) { if (substr($obj->tree, $a, 2) == '->') { $obj->tree = substr($obj->tree, 0, $a); break; } } } function characterData($parser, $data) { global $obj; eval($obj->tree.'->data=''.$data.'';'); } $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); if (!($fp = fopen($filename, "r"))) { die("could not open XML input"); } while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } xml_parser_free($xml_parser); if($obj->xml->TABELA_KURSOW->DATA_PUBLIKACJI->data!=date("Y-m-d")){ $filename = $new; $obj->tree = '$obj->xml'; $obj->xml = ''; $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); if (!($fp = fopen($filename, "r"))) { die("could not open XML input"); } while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } xml_parser_free($xml_parser); } $arr = $obj->xml->TABELA_KURSOW->POZYCJA[6]; // aby pobrać inną walute zmień wartość klucza dla tablicy POZYCJA echo $arr->PRZELICZNIK->data . " ¥ = " . $arr->KURS_SREDNI->data . " zł"; ?>[/php:1:2b342d1add] Ale nadal wywala mi : Warning: fopen(): php_network_getaddresses: gethostbyname failed in c:program filesapache groupapachehtdocsplikitabela.php on line 73 Warning: fopen(http://www.nbp.pl/Kursy/xml/a056z040319.xml): failed to open stream: No error in c:program filesapache groupapachehtdocsplikitabela.php on line 73 could not open XML input Plik waluty.xml utworzylem, ale nic... |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 0 Dołączył: 19.04.2003 Skąd: Hamburg / Darlowo Ostrzeżenie: (0%) ![]() ![]() |
[php:1:be4e153a6f]<?php
//$obj->xml = 'waluty.xml'; // ![]() $obj->xml = ''; // ;-) wystarczy ?>[/php:1:be4e153a6f] |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 1 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat [php:1:4b289fa53f]<?php
//$obj->xml = 'waluty.xml'; // ![]() $obj->xml = ''; // ;-) wystarczy ?>[/php:1:4b289fa53f] I tak wywala ten sam blad : Warning: fopen(): php_network_getaddresses: gethostbyname failed in c:program filesapache groupapachehtdocsplikitabela.php on line 73 Warning: fopen(http://www.nbp.pl/Kursy/xml/a056z040319.xml): failed to open stream: No error in c:program filesapache groupapachehtdocsplikitabela.php on line 73 could not open XML input |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 0 Dołączył: 19.04.2003 Skąd: Hamburg / Darlowo Ostrzeżenie: (0%) ![]() ![]() |
A masz plik "waluty.xml" ?
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 1 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat A masz plik "waluty.xml" ?
Mam i nic ![]() |
|
|
![]()
Post
#14
|
|
![]() Administrator serwera Grupa: Przyjaciele php.pl Postów: 909 Pomógł: 0 Dołączył: 12.08.2003 Skąd: /var/www/wroclaw.php Ostrzeżenie: (0%) ![]() ![]() |
Ja z kolei mam inny problem...
Cytat XML error: no element found at line 2
-------------------- Powrót do przeszłości :)
![]() |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 0 Dołączył: 19.04.2003 Skąd: Hamburg / Darlowo Ostrzeżenie: (0%) ![]() ![]() |
Ja miałem tak samo gdy w pliku waluty.xml bylo kilka pustych linii . Plik musi mieć 0 bitów .
Ten post edytował Indianin 23.07.2004, 07:58:54 |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 362 Pomógł: 0 Dołączył: 18.02.2004 Skąd: Knurów Ostrzeżenie: (0%) ![]() ![]() |
Plik musi być pusty bo inaczej skrypt interpretuje go jako cache. Co do waszych innych problemów: Być może na serwerze macie zablokowaną funkcję fopen dla plików zewnętrzych. Można to ew. przerobić na file();
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 1 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat Być może na serwerze macie zablokowaną funkcję fopen dla plików zewnętrzych. Można to ew. przerobić na file();
w php.ini mam taka linijke: allow_url_fopen = On o to chodzilo ![]() P.S. Mialem na ON ale i tak nie dziala ![]() |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 5.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
a ja mam pytanie innego typu: czy jest sens istnieja ponizszej czesci kodu skoro plik waluty.xml i tak nie jest aktualizowany przez skrypt
[php:1:f3c87869c7]<?php if($obj->xml->TABELA_KURSOW->DATA_PUBLIKACJI->data!=date("Y-m-d")){ $filename = $new; $obj->tree = '$obj->xml'; $obj->xml = ''; $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); if (!($fp = fopen($filename, "r"))) { die("could not open XML input"); } while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } xml_parser_free($xml_parser); } ?>[/php:1:f3c87869c7] |
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 362 Pomógł: 0 Dołączył: 18.02.2004 Skąd: Knurów Ostrzeżenie: (0%) ![]() ![]() |
Przepraszam, skopiowałem złą wersję kodu. To była rozwojowa i tutaj jest problem z cachowaniem. Za niedługo wrzucę nową.
|
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 1 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat Przepraszam, skopiowałem złą wersję kodu. To była rozwojowa i tutaj jest problem z cachowaniem. Za niedługo wrzucę nową.
Wrzuc wrzuc, bo towarzysze czekaja ... |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 29.06.2025 - 17:42 |