![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 17.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam
O to kod (zaczerpnięty z jakiejś strony - początkowo nie działał bo wywalało błędy.. pozmieniałem trochę.. uruchamia się lecz nie wyświetla walut) CODE <?php // plik z kursami walut w wersji HTML $nbpHtmlFile = "http://nbp.pl/kursy/kursyc.html"; // pobieramy aktualny kurs walut function getFromNbp() { $this->nbpContent = strip_tags ($this->nbpHtmlFile ); preg_match_all("/(.*)*/", $this->nbpContent, $matches_t); $offset = 6; for($i = 11; $i <= 27; $i++) { $a = $i . $offset; $date = date('Y-m-d'); $name = preg_replace('/[^A-Z]/', '', $matches_t[0][$a] ); $this->kurs[$date][$name]['desc'] = $matches_t[0][$a]; $this->kurs[$date][$name]['purchase'] = str_replace(',', '.', $matches_t[0][$a+2]); $this->kurs[$date][$name]['sale'] = str_replace(',', '.', $matches_t[0][$a+4]); $offset+=2; if($offset == 10) { $i++; $offset = 0; } } return $this->kurs; } $kursOnline = getFromNbp(); echo '<pre>' . print_r($kursOnline, true) . '</pre>'; ?> Po uruchomieniu na webservie wyświetla mi w przeglądarce takie coś: Array ( [2010-11-18] => Array ( [] => Array ( [descaaa] => [purchase] => [sale] => ) ) ) Jak widać coś działa.. lecz nic nie wyświetla (tylko datę) Czy ktoś mógłby rzucić okiem i zobaczyć co muszę poprawić. dzięki (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 172 Pomógł: 13 Dołączył: 15.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Zainteresuj się curl + wyrażenia regularne + preg_match_all(). Jak znowu będziesz chciał napisać o swoim problemie dot. wyrażeń regularnych daj kod zawierający informację co chcesz wyciągnąć.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 17.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
No zainteresowałem się trochę CURLEM.
Doszedłem do tego: CODE <?php $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "http://nbp.pl/kursy/kursyc.html"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $kursy = curl_exec($curl); curl_close($curl); ?> A o to wycinek źródła ściągniętej strony: CODE <p>Bieżące kursy kupna i sprzedaży walut obcych za złote określonych w § 5 Uchwały Nr 51/2002 Zarządu Narodowego Banku Polskiego z dnia 23 września 2002 r. w sprawie sposobu wyliczania i ogłaszania bieżących kursów walut obcych (Dz. Urz. NBP Nr 14, poz. 39 i Nr 20, poz. 51, z 2004 r. Nr 2, poz. 3 oraz z 2007 r. Nr 1, poz. 2 i Nr 18, poz. 35):</p> <p class="nag">Tabela kursów <b>224/C/NBP/2010</b> z dnia <b>2010-11-17</b> obowiązująca od dnia <b>2010-11-18</b></p> <p> <table cellpadding="3" cellspacing="1" bgcolor="#2b4c3f" width="375" border="0"> <col width="130" align="left"> <col width="80" align="right"> <col width="80" align="right"> <col width="80" align="right"> <tr valign="middle"> <th rowspan="2" class="lgby"><b>Nazwa waluty</b></th> <th rowspan="2" class="lgby"><b>Kod waluty</b></th> <th colspan="2" class="lgby"><b>Kurs:</b></th> </tr> <tr valign="middle"> <td align="right" class="lgby"><b>kupna</b></td> <td align="right" class="lgby"><b>sprzedaży</b></td> </tr> <tr valign="middle"> <td class="bg1 left">dolar amerykański</td> <td class="bg1 right">1 USD</td> <td class="bg1 right">2,8931</td> <td class="bg1 right">2,9515</td> </tr> I teraz jakim wyrażeniem regularnym mam wyciągnąć stąd kurs np. dolara? Generalnie chodzi o to, że mam zamiar wyciągnąć datę, 4 waluty (euro,usd,gbp,chf) i zapisać je raz dziennie do bazy. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
tak masz z tego wyciągnąć kursy walut
zauważ że wszystkie ważne informacje są zapisywane tak <td class="bg1 right">X</td> więc wystarczy wyciągnąć ten X i masz wszystkie potrzebne informacje w wyniku tej operacji powstanie tablica w której będzie "1 USD","2,8931","2,9515","1 AUD","2,8370","2,8944" gdzie kolejne wartości to nazwa waluty, kurs kupna, kurs sprzedaży |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 172 Pomógł: 13 Dołączył: 15.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
http://pl.wikibooks.org/wiki/PHP/Podstawy_...%84_regularnych
http://php.net/manual/en/function.preg-match-all.php Jak już coś namodzisz i dalej nie będzie działać to daj kod. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 17.11.2010 Ostrzeżenie: (0%) ![]() ![]() |
Mam plan taki.
Znaleźć link do xml'a. Ponieważ codziennie się zmienia należy i tak ściągnać kursy w html'u. Przeszukać i wygenerować link do xml'a. CODE <?php $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "http://nbp.pl/kursy/kursyc.html"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $kursy_html = curl_exec($curl); curl_close($curl); $szukajxml = 'wzorzec'; preg_match_all($szukajxml,$kursy_html,$zwrot_xml); ?> wzorzec muszę jakoś pod to zrobić: CODE <p class="file print_hidden left"><a href="/kursy/xml/c224z101118.xml" target="_blank">powyższa tabela w formacie .xml</a></p> Muszę to wyciąć "/kursy/xml/c224z101118.xml" i chyba podstawić pod jakąś zmienną? Następnie tą za pomocą zmiennej otrzymać gotowy link do xml'a czyli dostawić przed nią http://nbp.pl Potem cURL'em tego xml'a i parser daty oraz odpowiednich walut. Ale nie wiem czy dziś już będę miał czas aby ogarnąć te wzorce. Jak do czegoś dojdę to dam znać. Myślicie, że to dobry pomysł? |
|
|
--Piotr-- |
![]()
Post
#7
|
Goście ![]() |
Stary wątek, ale trafiłem na niego szukając rozwiązania tego samego problemu, a rozwiązanie znalazłem ostatecznie tutaj: http://www.amo-group.pl/blog/?p=95
A tutaj wersja kodu z powyższej strony używająca CURL:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 23:29 |