|
dodaj tą stronę do ulubionych
użytkownicy online 16, liczba odwiedzin: 1649102
| |||||||||
![]() | |||||||||
|
. |
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
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ć...? 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;
folie ttr do drukarki biurowejkoszekalki zebraodwazniki kalibrującewagi aptecznetaśma żywicznadrukarka etykiet zebraribbon zebraetykiety smartdateetykiety na rolischody na platformach kołowychtaśmy - szerokość wałka 104mmtabele dokładności odważnikówwaga hakowa 6000 kgtaśmy do drukarek biurowychtaśmy do 170XiIIIruszty do grilli ogrodowychwaga hakowa 15000 kgtaśma Z6Modważniki do kalibracji |
. | ||||||
| | 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 | |||||||||