PHP-apua

Liittynyt
28.6.2002
Viestejä
4 311
Ikä
42
Eli sellaanen homma pitäisi toteuttaa että:
Pitää saada eräältä nettisivulta haettua erään tuotteen hinta ja tulostettua se omalla sivulla. Pystyykö esim. kokonaisen sivun tekstin jotenkin saamaan ujutettua stringiin tms, josta tätä oikeaa tekstinpätkää sitten pystyisi hakemaan ("hinta:")? Uskoisin että ei ole kovin monimutkainen juttu, ei vain löytynyt nyt netistä mitään millä tuon voisi toteuttaa...
 
10% ALENNUS KOODILLA PAKKOTOISTO
fopen "http://int.ter.net/si.vu"
while ! feof $data .= fgets
jos preg_match("/hinta: ([0-9,.]+)/", $data, $match) palauttaa 1 pitäisi hinnan löytyä löytyä $match[1]:n arvona. Ei laiska jaksa kirjoittaa kunnon koodia mutta tuosta varmaan saat riittävästi tolkkua.
 
Joo kiitoksia! Eli nettisivun voi avata fopenilla, aivan kuten tiedoston. varsin kätevää :)
 
Vielä pitää kinuta apua, elikkäs:

$data = fopen("http://www.taydennyskoulutus.fi/tati/kurssi?index=1693071", "r");

while (!feof($data)) {
$buffer = fgets($data);
preg_match("/Hinta/", $buffer, $match);
echo $match[1];
echo $match[0];
echo $buffer;
}

Tuo kyllä tulostaa nätisti tuolla match[0]:lla tuon tekstin "Hinta", mutta tuo match[1] ei löydä sitä senjälkeen tulevaa tekstiä. preg_match-ehtojen [0-9] ei auttanut asiaan ..

Kuten urlista näkyy, hinta on taulukossa .. voiko vaikuttaa jotenkin tuohon?
 
Vähän vittumaista touhua tuo tavaran noukkiminen HTML:n seasta. Itse olen yleensä suosiolla lukenut koko paskan yhteen muuttujaan ja ensi alkuun rivinvaihdot pois. Rivi kerrallaan tuosta ei mitään tulekaan, jos vilkaiset minkä näköistä se HTML-siellä on. Tuossa voisi olla ihan ok siivota tagit vielä pois. $data = preg_replace(array("/[\r\n]/", "/<.+>/U"), "", $data) hoitanee tuon homman. Tuon jälkeen pitäisi sitten preg_match("/Hinta:(\d+)/", $data, $match) tuottaa sen luvun $match[1]:een. Ehkä. Mahdollisesti.
 
Viimeksi muokattu:

Latest posts

Suositut

Back
Ylös Bottom