Uusimman lottorivin hakija

DJ-Dew 23.03.05 17:35

Hakee uusimman lottokierroksen arvotut numerot veikkauksen sivuilta.

 Tekstiversio  Arvo: 2 (8 ääntä)  Äänestä: +  -
<?php

$filu = "http://peli.veikkaus.fi/tuloshaku?op=results&type=latest&nobottomnavigation=t&nosearchform=t&l=f&game=lotto";
$filu = str_replace(array("\n","\r\n"),"",file_get_contents($filu));

$lauseke1 = "/&nbsp;([0-9]{1,2}) &nbsp;([0-9]{1,2}) &nbsp;([0-9]{1,2}) &nbsp;([0-9]{1,2}) &nbsp;([0-9]{1,2}) &nbsp;([0-9]{1,2}) &nbsp;([0-9]{1,2})/";
$lauseke2 = "/\<td width=\"172\" height=\"20\"\>\<span class=\"result\"\>.*&nbsp;([0-9]{1,2}) &nbsp;([0-9]{1,2}) &nbsp;([0-9]{1,2})/";

if(preg_match($lauseke1,$filu,$nro) && preg_match($lauseke2,$filu,$lnro)) {
        preg_match("/Arvontapäivä \<span class=\"leipa\"\>([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{4})\<\/span\>/",$filu,$pvm);
        echo 'Arvontapäivä: '.$pvm[1].'<br /><br />';
        echo 'Numerot: ',$nro[1].' '.$nro[2].' '.$nro[3].' '.$nro[4].' '.$nro[5].' '.$nro[6].' '.$nro[7].'<br />';
        echo 'Lisänumerot: ',$lnro[1].' '.$lnro[2].' '.$lnro[3].'<br />';
}
else
        echo 'Numeroita ei löydy!';

?>

kerubi 19:07 23.3.05 
Ottaen huomioon että haetut kohdat ovat varsin spesifejä, voisi olla ohjelmallisesti parempi poimia suoraan kyseiset tiedot unohtaen html-sidonnaisuudet, tosin osittain olit jo näin tehnytkin, mutta unohtamalla täysin html:n sidotut ehdot teet prosessista toimintavarmemman. Eli sivun hakemisen jälkeen riisutaan strip_tags()illa ylimääräinen tavara ja konvertoidaan entitieetit. Tämän jälkeen voidaan preg-matcheilla poimia tiedettyjä syntakseja noudattavat merkkijonot, tässä tapauksessa päiväys sekä viiden ja kolmen sarja kaksinumeroisia lukuja.

Aiheellisesti ei niinkään innostava, kaippa tuo saunailtaan ja omaan käyttöön sopii.
DJ-Dew 19:53 23.3.05 
hmmm... eipäs olekaan ennen tullut ajatelleeksi tuota sivun parsimista strip_tagsilla. Varmaan ihan toimiva vaihtoehto. Ihan omaan käyttöön sen suunnittelinkin enkä mihinkään websivuille.