Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: "zdrapywanie ekranu'
Forum PHP.pl > Forum > PHP
calvus
Chciałbym pobrać z NBP kurs euro
  1. <?php
  2.  
  3. //Połączenie z URL-em i odczytanie informacji
  4. $url="http://www.nbp.pl/Kursy/KursyA.html";
  5.  
  6. if(!($zawartosc = file_get_contents($url)))
  7. {
  8. echo 'Otwarcie URL niemożliwe';
  9. }
  10.  
  11. //odnalezienie i wyświetlenie właściwej części strony
  12.  
  13. $wzor = '([0-9]+,[0-9]+)';
  14.  
  15. if(eregi($wzor, $zawartosc, $k))
  16. {
  17.  echo "Ostatni średni kurs euro: ".$k[4];
  18.  }
  19. else
  20.  {
  21. echo '<p>Kurs niedostępny</p>';
  22. };
  23.  
  24. ?>

Problem polega na tym , ze do tablicy $k ładuje się tylko pierwsza pozycja odpowiadająca wyrażeniu regularnemu, a kurs euro jest na 5
Co robic?
Apo
jak byś zobaczył NBP ma plik xml z walutami. WYstarczy użyc simplexml_load_file i wszystko pieknie i wygodnie smile.gif
calvus
dziekuje za konkretne rozwiazanie z xml, ale co by bylo gdyby na stronie nie bylo wersji xml?
jak dziala tablica funkcji ereg ?
dlaczego nie sa ladowane wszystkie podciagi wyznaczone przez wyrazenie regularne a tylko pierwszy ?
calvus
dzieki, wlasnie o to chodzilo, funkcja preg_match_all zwraca wielowymiarowa tablice
wiec w moim kodzie po zastapieniu ereg przez preg_match_all : echo $k[0][4 ] wyswietla kurs euro, ale czy ktos mi wytlumaczy dlaczego nie dziala ereg?
ereg zwraca tablice jednowymiarowa...
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.