Thread View: pl.comp.lang.php
18 messages
18 total messages
Started by Metempsychoza
Wed, 22 Aug 2001 01:46
kursy walut z nbp
Author: Metempsychoza
Date: Wed, 22 Aug 2001 01:46
Date: Wed, 22 Aug 2001 01:46
59 lines
2282 bytes
2282 bytes
zauwazylem ze na naszej grupie jak i na server-side czesto przewija sie
pytanie: "skad i jak sciagnac kursy walut?"
oto gotowiec:
<?php
# dolaczamy biblioteke z gruszki
require "Net/Socket.php";
class Metempsychoza_nbp extends Net_Socket {
var $data;
function Metempsychoza_nbp($url) {
parent::Net_Socket();
$pattern = "/^(?:http\:\/\/)?(.+?)(\/.+?)$/i";
preg_match($pattern, $url, $regs);
Net_Socket::connect($regs[1], 80);
Net_Socket::writeLine ("GET ".$regs[2]." HTTP/1.0\r\n");
$data = Net_Socket::readAll();
Net_Socket::disconnect();
if(!empty($data)) {
$pattern = "/\r\n<br>\r\n\s*<\s*table\s*(?:.+?)>(.+?)<\/\s*table\s*>/is";
preg_match($pattern, $data, $regs);
$this->data = $regs[1];
}
}
function Parse() {
$pattern = "/.*>(.+?)<\//i";
preg_match_all($pattern, $this->data, $regs);
$t = array(symbol, waluta, kupno, sprzedaż);
for($i=7; $l=$regs[1][$i]; $i+=5) {
for($ii=0; $ll=$t[$ii]; $ii++) {
$k[$l][$ll] = ltrim($regs[1][$i+$ii+1]);
}
}
return $k;
}
}
# sposob uzycia:
$o = new Metempsychoza_nbp("http://www.nbp.pl/asps/kursy_ks.html");
$kurs = $o->Parse();
# teraz mozemy wyswietlic to co nas interesuje:
echo $kurs[Australia][sprzedaż]."\n";
echo $kurs[Australia][kupno]."\n";
echo $kurs[Australia][symbol]."\n";
echo $kurs[Australia][waluta]."\n";
# lub podejrzec cala strukture tablicy:
print_r($kurs);
?>
--
metempsychoza(at)wp.pl
Re: kursy walut z nbp
Author: Daniel
Date: Wed, 22 Aug 2001 06:35
Date: Wed, 22 Aug 2001 06:35
74 lines
2729 bytes
2729 bytes
Niestety nie mogę przetestować tego rozwiązania ponieważ nie posiadam
biblioteki socket
Czy możesz podać namiar na nią.
Pozdrawiam,
Daniel
Użytkownik "Metempsychoza" <metempsychoza@wp.pl> napisał w wiadomości
news:9lv3b8$f92$1@news.tpi.pl...
> zauwazylem ze na naszej grupie jak i na server-side czesto przewija sie
> pytanie: "skad i jak sciagnac kursy walut?"
> oto gotowiec:
>
> <?php
> # dolaczamy biblioteke z gruszki
> require "Net/Socket.php";
>
> class Metempsychoza_nbp extends Net_Socket {
>
> var $data;
>
> function Metempsychoza_nbp($url) {
> parent::Net_Socket();
>
> $pattern = "/^(?:http\:\/\/)?(.+?)(\/.+?)$/i";
> preg_match($pattern, $url, $regs);
>
> Net_Socket::connect($regs[1], 80);
> Net_Socket::writeLine ("GET ".$regs[2]." HTTP/1.0\r\n");
> $data = Net_Socket::readAll();
> Net_Socket::disconnect();
>
> if(!empty($data)) {
> $pattern =
"/\r\n<br>\r\n\s*<\s*table\s*(?:.+?)>(.+?)<\/\s*table\s*>/is";
> preg_match($pattern, $data, $regs);
> $this->data = $regs[1];
> }
> }
>
> function Parse() {
> $pattern = "/.*>(.+?)<\//i";
> preg_match_all($pattern, $this->data, $regs);
> $t = array(symbol, waluta, kupno, sprzedaż);
>
> for($i=7; $l=$regs[1][$i]; $i+=5) {
> for($ii=0; $ll=$t[$ii]; $ii++) {
> $k[$l][$ll] = ltrim($regs[1][$i+$ii+1]);
> }
> }
> return $k;
> }
> }
> # sposob uzycia:
> $o = new Metempsychoza_nbp("http://www.nbp.pl/asps/kursy_ks.html");
> $kurs = $o->Parse();
>
> # teraz mozemy wyswietlic to co nas interesuje:
> echo $kurs[Australia][sprzedaż]."\n";
> echo $kurs[Australia][kupno]."\n";
> echo $kurs[Australia][symbol]."\n";
> echo $kurs[Australia][waluta]."\n";
>
> # lub podejrzec cala strukture tablicy:
> print_r($kurs);
>
> ?>
> --
> metempsychoza(at)wp.pl
>
>
Re: kursy walut z nbp
Author: Metempsychoza
Date: Wed, 22 Aug 2001 08:04
Date: Wed, 22 Aug 2001 08:04
22 lines
1667 bytes
1667 bytes
Użytkownik "Daniel" <wszelaki@kki.net.pl> napisał w wiadomości news:9lvjvm$h63$1@news.tpi.pl... > Niestety nie mogę przetestować tego rozwiązania ponieważ nie posiadam > biblioteki socket masz ja, tylko jeszcze o tym nie wiesz :-) > Czy możesz podać namiar na nią. po pierwsze sproboj odpalic skrypt, na 90% zadziala jesli jestes w pozostalych 10% zrob co nastepuje: 1) znajdz w dystrybucji php katalog o nazwie "pear' 2) w pliku php.ini popraw linijke inlude_path = ".:/twoja_sciezka_do_pear" jesli nie masz dostepu do php.ini to umiesc bezposrednio w skrypcie: <?php ini_set(include_path, ".:/twoja_sciezka_do_pear"); ?> jesli dzialasz pod windowsem, to po kropce zamiast dwukropka daj srednik i bedzie ok -- metempsychoza(at)wp.pl
Re: kursy walut z nbp
Author: Daniel
Date: Wed, 22 Aug 2001 09:01
Date: Wed, 22 Aug 2001 09:01
17 lines
1240 bytes
1240 bytes
Witam, Przy próbie odpalenia skryptu pojawia mi się taki komunikat : Fatal error: Failed opening required 'socket.php' (include_path='.:/usr/local/lib/php') .... problem jest w tym iż korzystam s serwera wirtualnego i nie mam dostępu do plików konfiguracyjnych php. Pozdrawiam, Daniel
Re: kursy walut z nbp
Author: Metempsychoza
Date: Wed, 22 Aug 2001 09:29
Date: Wed, 22 Aug 2001 09:29
20 lines
1463 bytes
1463 bytes
Użytkownik "Daniel" <wszelaki@kki.net.pl> napisał w wiadomości news:9lvshu$9la$1@news.tpi.pl... > Witam, > > > Przy próbie odpalenia skryptu pojawia mi się taki komunikat : > > Fatal error: Failed opening required 'socket.php' > (include_path='.:/usr/local/lib/php') .... > > problem jest w tym iż korzystam s serwera wirtualnego i nie mam dostępu do > plików konfiguracyjnych php. to sproboj w skrypcie <?php ini_set(include_path, ".:/usr/share/php"); ?> -- metempsychoza(at)wp.pl
Re: kursy walut z nbp
Author: Daniel
Date: Wed, 22 Aug 2001 10:42
Date: Wed, 22 Aug 2001 10:42
29 lines
1674 bytes
1674 bytes
Niestety nie pomogło Użytkownik "Metempsychoza" <metempsychoza@wp.pl> napisał w wiadomości news:9lvufp$nin$1@news.tpi.pl... > > Użytkownik "Daniel" <wszelaki@kki.net.pl> napisał w wiadomości > news:9lvshu$9la$1@news.tpi.pl... > > Witam, > > > > > > Przy próbie odpalenia skryptu pojawia mi się taki komunikat : > > > > Fatal error: Failed opening required 'socket.php' > > (include_path='.:/usr/local/lib/php') .... > > > > problem jest w tym iż korzystam s serwera wirtualnego i nie mam dostępu do > > plików konfiguracyjnych php. > > to sproboj w skrypcie > <?php > ini_set(include_path, ".:/usr/share/php"); > ?> > -- > metempsychoza(at)wp.pl > > >
Re: kursy walut z nbp
Author: Piotr Burda
Date: Wed, 22 Aug 2001 11:44
Date: Wed, 22 Aug 2001 11:44
4 lines
1000 bytes
1000 bytes
a mnie wywala taki komunikat Fatal error: No parent class available in this context in /home/httpd/html/kusry_proba.php on line 10 Piotr
Re: kursy walut z nbp
Author: Daniel
Date: Wed, 22 Aug 2001 12:19
Date: Wed, 22 Aug 2001 12:19
8 lines
1083 bytes
1083 bytes
A czy możesz mi podesłać na priva plik socket.php Pozdrawiam, Daniel
Re: kursy walut z nbp
Author: slawek-
Date: Wed, 22 Aug 2001 13:46
Date: Wed, 22 Aug 2001 13:46
9 lines
1107 bytes
1107 bytes
"Daniel" <wszelaki@kki.net.pl> napisał: > A czy możesz mi podesłać na priva plik > socket.php Możesz go sobie sam ściągnąć: http://cvs.php.net/co.php/php4/pear/Net/Socket.php?r=1.7&p=1 slawek-
Re: kursy walut z nbp
Author: cauchy
Date: Wed, 22 Aug 2001 16:15
Date: Wed, 22 Aug 2001 16:15
8 lines
1155 bytes
1155 bytes
u mnie zadzialalo tylko jakos w dziwny nie wyjasniony sposob wyswietla pytanie czy ktos sobie rosci prawa do tego skryptu i czy zezwalana male poprawki w kodzie? pozdro
Re: kursy walut z nbp
Author: Metempsychoza
Date: Wed, 22 Aug 2001 17:46
Date: Wed, 22 Aug 2001 17:46
18 lines
1636 bytes
1636 bytes
Użytkownik "Piotr Burda" <poczta@narty.pl> napisał w wiadomości news:9m06i0$k18$1@news.tpi.pl... > a mnie wywala taki komunikat > Fatal error: No parent class available in this context in > /home/httpd/html/kusry_proba.php on line 10 masz troche podstarzalego php :-) zamiast w "nowoczesny" sposob wywolywac konstruktor klasy macierzystej, czyli parent::Net_Socket(); musisz wywolac go w nastepujacy sposob $this->Net_Socket(); lub Net_Socket::Net_Socket(); i tu ujawiaja sie niezgodnosci miedzy poszczegolnymi wersjami php, ale i tak powinnismy sie cieszyc ze nie sa to roznice tak wielkie jak interpretacja html-a w poszczegolnych przegladarkach -- metempsychoza(at)wp.pl
Re: kursy walut z nbp
Author: Metempsychoza
Date: Wed, 22 Aug 2001 17:57
Date: Wed, 22 Aug 2001 17:57
16 lines
1476 bytes
1476 bytes
Użytkownik "slawek-" <slawek@irc.pl.NOSPAM> napisał w wiadomości news:3b83aa68@news.home.net.pl... > "Daniel" <wszelaki@kki.net.pl> napisał: > > A czy możesz mi podesłać na priva plik > > socket.php > > Możesz go sobie sam ściągnąć: > > http://cvs.php.net/co.php/php4/pear/Net/Socket.php?r=1.7&p=1 no i jeszcze http://cvs.php.net/co.php/php4/pear/PEAR.php?r=1.14 bedzie ci potrzebne -- metempsychoza(at)wp.pl
Re: kursy walut z nbp
Author: Metempsychoza
Date: Wed, 22 Aug 2001 18:21
Date: Wed, 22 Aug 2001 18:21
17 lines
1444 bytes
1444 bytes
Użytkownik "cauchy" <\\x//cuchy2k@o2.pl\\x//> napisał w wiadomości news:3b83d9bd$1@news.bsi.net.pl... > u mnie zadzialalo > tylko jakos w dziwny nie wyjasniony > sposob wyswietla to znaczy jak? > pytanie czy ktos sobie rosci prawa do > tego skryptu i czy zezwalana male poprawki w kodzie? skrypt ten jest dystrybuowany na podstawie General Beer License (GBL), co oznacza ze jesli zastosujesz go w projekcie wartym <100000zl, to wowczas musisz postawic mi piwo :-) -- metempsychoza(at)wp.pl
Re: kursy walut z nbp
Author: Radosław Popławski
Date: Wed, 22 Aug 2001 21:07
Date: Wed, 22 Aug 2001 21:07
8 lines
1107 bytes
1107 bytes
Wed, 22 Aug 2001 03:46:05 +0200, w <9lv3b8$f92$1@news.tpi.pl>, "Metempsychoza" <metempsychoza@wp.pl> napisał(-a): > <?php > # dolaczamy biblioteke z gruszki > require "Net/Socket.php"; To już zwykły fopen nie wystarczył? :)
Re: kursy walut z nbp
Author: cauchy
Date: Wed, 22 Aug 2001 22:12
Date: Wed, 22 Aug 2001 22:12
13 lines
1297 bytes
1297 bytes
> > skrypt ten jest dystrybuowany na podstawie General Beer License (GBL), co > oznacza ze jesli zastosujesz go w projekcie wartym <100000zl, to wowczas > musisz postawic mi piwo :-) > oky jesli sie tak stanie pierwszy bedziesz o tym wiedzial pozdro
Re: kursy walut z nbp
Author: Metempsychoza
Date: Thu, 23 Aug 2001 09:49
Date: Thu, 23 Aug 2001 09:49
15 lines
1512 bytes
1512 bytes
> > # dolaczamy biblioteke z gruszki > > require "Net/Socket.php"; > To już zwykły fopen nie wystarczył? :) i jeszcze fwrite, fread, fclose, i na dodatek trzeba zadbac o obsluge bledow, czyli szereg mechanicznych czynnosci ktore zna sie juz na pamiec skoro jacys leniwi ;-) programisci stworzyli (a raczej nadal tworza) PEAR to korzystajmy z tego poza tym nie wiem czy zwrociles uwage: gruszka jest po prostu piekna: czysty, logiczny kod, wzor do nasladowania jesli chodzi o programowanie w php -- metempsychoza(at)wp.pl
Re: kursy walut z nbp
Author: Piotr Burda
Date: Thu, 23 Aug 2001 10:34
Date: Thu, 23 Aug 2001 10:34
11 lines
1450 bytes
1450 bytes
> i tu ujawiaja sie niezgodnosci miedzy poszczegolnymi wersjami php, ale i tak > powinnismy sie cieszyc ze nie sa to roznice tak wielkie jak interpretacja > html-a w poszczegolnych przegladarkach > -- > metempsychoza(at)wp.pl > i to dotknales BAAAAARdzo drazliwego tematu, szlag mnie juz trafia od kilku dni i siwieje. bylo pieknie pod IE pod szkapa nie zrobilem pod szkape to pod IE troche zbrzydlo i coraz bardziej dojzewam do zrobienia 2 wersji serwisu. Piotr
Re: kursy walut z nbp
Author: Radosław Popławski
Date: Sat, 25 Aug 2001 12:34
Date: Sat, 25 Aug 2001 12:34
19 lines
1775 bytes
1775 bytes
Thu, 23 Aug 2001 11:49:28 +0200, w <9m2k1c$5u7$1@news.tpi.pl>, "Metempsychoza" <metempsychoza@wp.pl> napisał(-a): > > > # dolaczamy biblioteke z gruszki > > > require "Net/Socket.php"; > > > To już zwykły fopen nie wystarczył? :) > > i jeszcze fwrite, fread, fclose, i na dodatek trzeba zadbac o obsluge > bledow, czyli szereg mechanicznych czynnosci ktore zna sie juz na pamiec > skoro jacys leniwi ;-) programisci stworzyli (a raczej nadal tworza) PEAR to > korzystajmy z tego > poza tym nie wiem czy zwrociles uwage: gruszka jest po prostu piekna: > czysty, logiczny kod, wzor do nasladowania jesli chodzi o programowanie w > php Właśnie tego nie widzę -- coonect, writeLine, readAll, disconnect... To już fopen/fread/fclose jest prostsze, bo przynajmniej nie trzeba znać składni polecenia HTTP. :)
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads