Avatar billede fatal85 Nybegynder
02. april 2010 - 22:16 Der er 3 kommentarer og
1 løsning

trække information ud fra dbu's hjemmeside

Jeg arbejder ud fra denne side, som informationen skal kunne trækkes ud fra:
http://www.dbu.dk/sr/matchInfo.aspx?matchid=221500&poolid=88910

Jeg har før lavet noget lignende hvor det bare var fra et xml dokument, og hvor man bare kunne navngive det tag man gerne ville have, men det er vanskeligt i dette tilfælde da jeg ikke er helt skarp til at lave preg_match mønstre(som jeg går ud fra man skal bruge). Derfor ville det også være en fordel, hvis folk kunne forklarer koden, så jeg også lærte lidt i processen :)

Informationerne er self ting som kampnummer, tidspunkt osv.

ps. Jeg har fået tilladelse fra dbu til at gøre dette.
Avatar billede The_Buzz Novice
02. april 2010 - 22:22 #1
http://snippets.dzone.com/posts/show/2245

Du kan bruge denne ovenfor :)
Avatar billede The_Buzz Novice
02. april 2010 - 22:23 #2
<?php

$config['url']      = "http://www.business-tycoon.com"; // url of html to grab
$config['start_tag'] = "<b>"; // where you want to start grabbing
$config['end_tag']  = "</b>"; // where you want to stop grabbing
$config['show_tags'] = 0; // do you want the tags to be shown when you show the html? 1 = yes, 0 = no

class grabber
{
    var $error = '';
    var $html  = '';
   
    function grabhtml( $url, $start, $end )
    {
        $file = file_get_contents( $url );
       
        if( $file )
        {
            if( preg_match_all( "#$start(.*?)$end#s", $file, $match ) )
            {               
                $this->html = $match;
            }
            else
            {
                $this->error = "Tags cannot be found.";
            }
        }
        else
        {
            $this->error = "Site cannot be found!";
        }
    }
   
    function strip( $html, $show, $start, $end )
    {
        if( !$show )
        {
            $html = str_replace( $start, "", $html );
            $html = str_replace( $end, "", $html );
           
            return $html;
        }
        else
        {
            return $html;
        }
    }
}

$grab = new grabber;
$grab->grabhtml( $config['url'], $config['start_tag'], $config['end_tag'] );

echo $grab->error;

foreach( $grab->html[0] as $html )
{
    echo htmlspecialchars( $grab->strip( $html, $config['show_tags'], $config['start_tag'], $config['end_tag'] ) ) . "<br>";
}

?>
Avatar billede fatal85 Nybegynder
03. april 2010 - 13:16 #3
hold da op meget kode for utrolig lidt, men du får pointene, da jeg brugte regex mønsteret derfra. Forstår dog ikke det helt store om hvad det betyder. Måske en kunne gøre det?

Ligger dog lige koden, hvis der var andre der skulle få brug for det.

<?php
$cnt = file_get_contents( "http://www.dbu.dk/sr/matchInfo.aspx?matchid=221500&poolid=88910" );
if ( preg_match_all("#468px;\">(.*?)</td>#s", $cnt, $m ) )
{
    $knr = $m[1][0];
    $tur = $m[1][1];
    $tid = $m[1][4];
    $hjh = $m[1][5];
    $udh = $m[1][6];
    $run = $m[1][7];
    $res = $m[1][8];
}
    echo "$knr";
    echo "$tur";
    echo "$tid";
    echo "$hjh";
    echo "$udh";
    echo "$run";
    echo "$res";
?>
Avatar billede intenz Novice
03. april 2010 - 13:44 #4
Du skal være opmærksom på copyright problematikken, da det kan være ulovligt at benytte andres database indhold, hvis deres database er lavet gennem 'en væsentlig investering', og især hvis du får kommerciel værdi af at bruge den/laver noget der kan konkurrere med sitet hvor du henter informationerne fra.

Nu ved jeg ikke om det er relevant med dit formål, eller om DBU overhoved har nogle problemer med, at man gør sådan noget. Jeg ville bare nævne det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester