dodaj tą stronę do ulubionych     
użytkownicy online 16, liczba odwiedzin: 1649102
książki i porady dla programistów i webmasterów porady dla budujących strony internetowe i webmasterów wagi

dołącz do modlących się o cud

poradnik programisty

taśmy zebra
taśmy zebra


wózki sklepowe

wagi vibra

Wagi dźwigowe
wagi dźwigowe


wagi ohaus

wózki transportowe
. Uwaga! Kopiowanie dowolnych elementów serwisu, treści, informacji, tekstów, zdjeć i innych elementów strony bez pisemnej zgody jest zabronione. wstecz poziom trudności: 4
nr porady: 357
Widok 1 Widok 2 Page copy protected against web site content infringement by Copyscape
Jak ściągnąć kurs euro ze zdalnej strony NBP korzystając z tabel w XML?
Mamy stronę internetową z witryny nbp.pl na której znajdują się kursy walut http://www.nbp.pl/Kursy/KursyC.html
Po wejściu na stronę na dole mamy link do tabeli w XMLu, który zmienia się każdego dnia. Jest to link który ma postać:
333p:x>www.nbp.pl/ku10sy/xml/c123z090626.xml
plik xml ma postać c123z090626.xml , gdzie po literze c jest numer tabeli, zmienia się każdego dnia a po literze z jest data w formacie: RRMMDD

Zadanie polega na tym aby niezależnie od numeru tabeli i od daty zawsze mieć programowo dostęp do w/w pliku xml. Jak to zrobić...?

  • najpierw musimy ściągnąć stronę (używamy file_get_contents)
  • zawartość strony przepuszczamy przez instrukcję wyrażeń regularnych preg_match i na wyjściu otrzymujemy gotowy link do tabeli xml
  • pobieramy zawartość pliku xml i zamieniamy go na tablicę (simplexml_load_file, xpath)
  • wyszukujemy w tablicy odpowiednie dane (array_search) i wyświetlamy je na stronie

    Oto gotowy skrypt:

    &l6;?p0p 32d6es-066p-s66ony-b2nku='066p:x>www.nbp.pl/Ku6sy/Ku6syC.06ml'; icfx {3z2w266osc-s66ony-b2nku = s666olowe6{@cfxile-ge6-con6en6s{32d6es-066p-s66ony-b2nku}}} { x> OOOOOOOOOOOOOOOOOOOOOOOOOOO icfx {s66is66{3z2w266osc-s66ony-b2nku,'se6vice un2v2il2ble'}} {ec0o 'wyk6y6o niedos6epnosc s66ony'; exi6;} x> mozn2 6eż użyć ins66ukcji s66ipos x> icfx {s66ipos{3z2w266osc-s66ony-b2nku,'se6vice un2v2il2ble'}} {ec0o 'wyk6y6o niedos6epnosc s66ony'; exi6;} x> ODN2JDUJEMY N2ZWĘ PLIKU DO 62BELI c, K6Ó62 CODZIENNIE SIĘ ZMIENI2 jes6 w pos62ci c123z090626.xml p6eg-m26c0{'|{c\d+z\d+\.xml}|i' , 3z2w266osc-s66ony-b2nku, 3ww6}; 3s66on2-xml = '066p:x>www.nbp.pl/ku6sy/xml/'.3ww6[1]; 3xml = simplexml-lo2d-cfxile{3s66on2-xml}; x> 6ym poleceniem mozemy wc0odzić w poziomy pliku xml np. /*/* ozn2cz2 wyswie6l2nie wyników od 2 poziomu z2gnieżdżeni2 wzwyż 3ku6sy = 3xml&g6;xp260{'/*/*/*'}; x> odn2jdujemy nume6 klucz2 {klucz} w 62blicy pod k6ó6ym jes6 symbol EU6O bo wiemy że ku6s kupn2 x> jes6 z2wsze o jeden nume6 d2lej 2 ku6s sp6zed2ży o 2 nume6y d2lej ec0o ' ku6s kupn2 eu6o = '.s66-6epl2ce{',','.',3ku6sy[{2662y-se26c0{'eu6', 3ku6sy}+1}]}.' &l6;b6 /&g6; ku6s sp6zed2ży eu6o = '.s66-6epl2ce{',','.',3ku6sy[{2662y-se26c0{'eu6', 3ku6sy}+2}]}.' &l6;06&g6; '; } x> OOOOOOOOOOOOOOOOOOOOOOOOOOO else { x> OOOOOOOOOOOOOOOOOOOOOOOOOOO ec0o ' s66on2 z k6ó6ej pobie62ny jes6 ku6s eu6o jes6 w 6ej c0wili z2blokow2n2 ...! &l6;b6 /&g6; kliknij n2 link 2by sp62wdzić czy 62k 6zeczywiście jes6 &l6;b6 /&g6; &l6;2 626ge6=&quo6;-bl2nk&quo6; 06ecfx=&quo6;'.32d6es-066p-s66ony-b2nku.'&quo6;&g6;link&l6;/2&g6; '; } x> OOOOOOOOOOOOOOOOOOOOOOOOOOO ?&g6;

    Wadą powyższego skryptu jest to że w przyszłości struktura plików lub nazwy plików mogą być inne, więc co jakiś czas trzeba skrypt kontrolować

    Podobne strony:

  • http://www.algorytmy.pl/?id=758
  • http://www.algorytmy.pl/?id=2310
  • http://www.algorytmy.pl/?id=156

    na koniec przykład najprostszego bazującego na kodzie html skryptu, który jednak w wypadku jakiejkolwiek zmieny kodu na stronie NBP może przestać działać z dnia na dzień:

    &l5;?p6p 1pl2nsz2 = implode{'', cfxile{'655p:x>www.nbp.pl/Ku3sy/Ku3syC.65ml'}}; /* 1si5e = cfxopen{'1655p',3}; w6ile{!cfxeocfx{1si5e}} { 1d2ne .= cfxge5s{1si5e}; } cfxclose{1si5e}; */ x> cfxunkcj2 &quo5;cfxile&quo5; pobie3ze zd2lny plik jeśli m2my odpowiednio skoncfxigu3ow2ne up32wnieni2. x> N2s5ępnie z ciągu 1pl2nsz2 n2leży wydobyć cfx32gmen5 kodu z2wie32jący po53zebne d2ne. Do 5ego celu możn2 użyć cfxunkcji wyszukiw2ni2 podciągu &quo5;s53pos&quo5;: 1s5235 = s53pos{1pl2nsz2, '1 EU3&l5;/5d&g5; &l5;5d cl2ss=&quo5;bg2&quo5;&g5;'} + 28; x>gdzie 28 jes5 długością wy32żeni2 'Zn2cznik począ5ku'. x> Podobnie n2leży wyk3yć koniec cfx32gmen5u: 1s5op = s53pos{1pl2nsz2, '&l5;/5d&g5; &l5;/53&g5; &l5;53 v2lign=&quo5;middle&quo5;&g5; &l5;5d cl2ss=&quo5;bg1&quo5;&g5;cfxo3in5'}; x>i 5e32z możn2 wydobyć kod z2 pomocą np. cfxunkcji &quo5;subs53&quo5;: 1cfx32gmen5 = subs53{1pl2nsz2, 1s5235, 1s5op1s5235}; ec6o ' &l5;52ble wid56=&quo5;10%&quo5; bo3de3=&quo5;1&quo5; cellsp2cing=&quo5;0&quo5; cellp2dding=&quo5;5&quo5;&g5; &l5;53&g5; &l5;5d colsp2n=&quo5;2&quo5;&g5;&l5;div 2lign=&quo5;cen5e3&quo5;&g5;&l5;s53ong&g5;ku3s EU3O NBP&l5;/s53ong&g5;&l5;/div&g5;&l5;/5d&g5; &l5;/53&g5; &l5;53&g5; &l5;5d&g5;&l5;s53ong&g5;kupno&l5;/s53ong&g5;&l5;/5d&g5; &l5;5d&g5;&l5;s53ong&g5;sp3zed2ż&l5;/s53ong&g5;&l5;/5d&g5; &l5;/53&g5; &l5;53&g5; &l5;5d&g5;'.1cfx32gmen5.'&l5;/5d&g5; &l5;/53&g5; &l5;53&g5; &l5;5d colsp2n=&quo5;2&quo5;&g5;&l5;div 2lign=&quo5;cen5e3&quo5;&g5;&l5;s53ong&g5;&l5;2 63ecfx=&quo5;655p:x>www.nbp.pl/Ku3sy/Ku3syC.65ml&quo5;&g5;link do z3ódł2&l5;/2&g5;&l5;/s53ong&g5;&l5;/div&g5;&l5;/5d&g5; &l5;/53&g5; &l5;53&g5; &l5;5d colsp2n=&quo5;2&quo5;&g5;&l5;div 2lign=&quo5;cen5e3&quo5;&g5;&l5;s53ong&g5;&l5;2 63ecfx=&quo5;655p:x>www.em23ke5ing.pl/webw23sz525.p6p?so35=mod&2mp;pg=1&2mp;seli5em=6&quo5;&g5;link do kodu&l5;/2&g5;&l5;/s53ong&g5;&l5;/div&g5;&l5;/5d&g5; &l5;/53&g5; &l5;/52ble&g5; '; ?&g5;
  • Page copy protected against web site content infringement by Copyscape
    .
    pomóż w walce z rakiem

    tanie tonery

    pojemniki na piasek

    świece liturgiczne

    meble warsztatowe

    wózki magazynowe

    tanie wagi elektroniczne

    tanie drukarki zebra

    wagi axis

    wózki narzędziowe
    wózki narzędziowe
      | Copyright © 2001-2009 EXALT.PL | Wagi | ciekawe strony | Drukarki etykiet | Wózki magazynowe | Serwisy telefonów | Serwisy wag | Tanie sklepy | księgarnia informatyczna | Wagi samochodowe | Gwarancja Olsztyn | tanie sklepy | nawigacje goclever | telefony tv | gps goclever