Avatar billede Slettet bruger
19. april 2005 - 22:19 Der er 3 kommentarer og
1 løsning

Uddrage informationer fra HTML kode

Jeg har et stykke HTML:

<div><span class="udsendelse-tid">09:00</span>&nbsp;&nbsp;<span class="udsendelse-titel" onclick="toggleDesc(23161685);">Sådan ligger landet</span> <span class="udsendelse-symboler">(TH)</span> <span class="udsendelse-symboler">(G)</span> <span class="udsendelse-symboler">(13)</span></div>
<div class="udsendelse-beskrivelse" style="display: block" name="divBeskrivelseKort" id="Desc23161685Short">Kort beskrivelse her... Måske også HTML!</div>
<div class="udsendelse-beskrivelse" style="display: none;" name="divBeskrivelseLang" id="Desc23161685Long">Hun forsvarer mordere, voldtægtsforbrydere og andre groft kriminelle. I øjeblikket arbejder hun på Tvind-sagen og sagen om bogtyverierne på Det Kgl Bibliotek. Hun er én af Danmarks mest eftertragtede forsvarere, og så er hun også netop blevet kåret som én af landets mest sexede kvinder. Thera Hoeymans møder forsvarsadvokaten Merethe Stagetorn.<br>Sendt første gang 17.4.<br>  <div align="right" style="margin-top:2px;">  <a href="/paamindelser/" target="_top"><img src="/images/paamind_inaktiv.gif" border="0" alt="Påmindelse" title="For at benytte påmindelser skal du være TV2 Login bruger"> <span title="For at benytte Påmindelser skal du være TV2 Login bruger" class="program_ikon_inaktiv">Påmindelse</span>  <a href="/tvuge/" target="_top"><img src="/images/tvuge_inaktiv.gif" border="0" alt="tv-uge" title="For at benytte tv-ugen skal du være TV2 Login bruger"> <span title="For at benytte tv-ugen skal du være TV2 Login bruger" class="program_ikon_inaktiv">tv-uge</span>  </div>

</div>
</div>

Denne kode skal jeg have uddraget nogle informationer fra. Disse informationer skal jeg have i et array (eller variabler - who cares?). jeg skal bruge indholdet af den første span (tidspunktet for udsendelsen), samt titlen og de to beskrivelser, som henholdsvis er placeret i span og div (name=DescIDshort / DescIDlong).

Dette burde være en overkommelig opgave, som kan løses med regexp. Problemet er bare, at jeg ikke kan finde ud af de skide regulære udtryk.
Avatar billede voirsous Nybegynder
19. april 2005 - 22:24 #1
Du kan alternativt bruge explode().
ex

$TMP = explode("udsendelse-tid\">", $HTML);
$UD_TID = explode("</", $TMP[1]);

Jeg ved ikke om det er 'best pratice', men det virker.
Avatar billede olebole Juniormester
20. april 2005 - 00:30 #2
<ole>

- men husk du kun må printe resultatet til skærmen, hvis du får tilladelse fra TV2 ... og så du det det helt unødvendigt, da du vil modtage data på en helt anden måde.

Faktisk vil jeg mene, du er _meget_ tæt på at være i konflikt med:
    http://www.eksperten.dk/regler.phtml
- §2.1.7.1

/mvh
</bole>
Avatar billede coderdk Praktikant
21. april 2005 - 01:15 #3
olebole, Hvis det er til eget brug, og der ikke står noget i TV2's TOS om det, så må han gerne gøre sådan noget - Den paragraf i E-reglerner går jeg ud fra er møntet på musik og film osv. Anyway ham må nok under alle omstændigheder ikke - I hvert tilfælde ikke hvis han vil vise det på en offentlig side...

philip, du skal bruge preg_match. Her er et eksempel:

<?php

  $html = <<<HTML
<div><span class="udsendelse-tid">09:00</span>&nbsp;&nbsp;<span class="udsendelse-titel" onclick="toggleDesc(23161685);">Sådan ligger landet</span> <span class="udsendelse-symboler">(TH)</span> <span class="udsendelse-symboler">(G)</span> <span class="udsendelse-symboler">(13)</span></div>
<div class="udsendelse-beskrivelse" style="display: block" name="divBeskrivelseKort" id="Desc23161685Short">Kort beskrivelse her... Måske også HTML!</div>
<div class="udsendelse-beskrivelse" style="display: none;" name="divBeskrivelseLang" id="Desc23161685Long">Hun forsvarer mordere, voldtægtsforbrydere og andre groft kriminelle. I øjeblikket arbejder hun på Tvind-sagen og sagen om bogtyverierne på Det Kgl Bibliotek. Hun er én af Danmarks mest eftertragtede forsvarere, og så er hun også netop blevet kåret som én af landets mest sexede kvinder. Thera Hoeymans møder forsvarsadvokaten Merethe Stagetorn.<br>Sendt første gang 17.4.<br>  <div align="right" style="margin-top:2px;">  <a href="/paamindelser/" target="_top"><img src="/images/paamind_inaktiv.gif" border="0" alt="Påmindelse" title="For at benytte påmindelser skal du være TV2 Login bruger"> <span title="For at benytte Påmindelser skal du være TV2 Login bruger" class="program_ikon_inaktiv">Påmindelse</span>  <a href="/tvuge/" target="_top"><img src="/images/tvuge_inaktiv.gif" border="0" alt="tv-uge" title="For at benytte tv-ugen skal du være TV2 Login bruger"> <span title="For at benytte tv-ugen skal du være TV2 Login bruger" class="program_ikon_inaktiv">tv-uge</span>  </div>

</div>
</div>
HTML;

    preg_match( "/=\"udsendelse-tid\">([\d:]+?)<.+=\"udsendelse-titel[^>]+>([^<]+)<.+Desc\d+Short\">([^<]+?)<\/div>\s+<div class=\"udsendelse.+Desc\d+Long\">(.+?)<div/is", $html, $m );
   
    for ( $i = 1;$i <= 4; $i++ )
    {
        echo "<p>$m[$i]</p>";
    }

?>

Hvis du skal fange flere, skal du bruge preg_match_all
Avatar billede Slettet bruger
22. april 2005 - 13:18 #4
Det er en opgave jeg har fået, dvs. at ansvaret mht. rettigheder ikke ligger hos mig. Min opgave er udelukkende at programmere systemet.
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