Avatar billede jackass- Nybegynder
14. september 2005 - 14:06 Der er 7 kommentarer og
1 løsning

Parse en url.. how?

Heps

Jeg vil gerne parse en url - eksempelvis nedenstående:

http://www.tv.com/24/show/3866/episode_listings.html&season=0

..og gemme episode-info i en database (i første omgang bare echo dem ud, resten er jeg med på). Men hvordan parser man url'en og udelukkende trækker de informationer ud som omhandler de enkelte episoder? Jeg går ud fra det er noget med at definere offsets eller lignende.

Håber meget, at nogen kan hjælpe.. på forhånd tak :)

/jack
Avatar billede hmortensen Nybegynder
14. september 2005 - 17:02 #1
Parse URL'en eller selve siden ?

Hvis det er selve siden, har du så en tilladelse til at bruge oplysninger fra siden ?
Avatar billede jakobdo Ekspert
14. september 2005 - 22:04 #2
Du kan lave en regexp som løber siden igennem og finder de data du skal bruge!
Men som hmortensen er inde på, så skal du lige sikre du har lov til det! :o)
Avatar billede jackass- Nybegynder
15. september 2005 - 08:21 #3
I know.. nu var ovenstående link som jeg skrev også blot et eksempel, det kunne være hvilken som helst side med listede informationer :)
Avatar billede jakobdo Ekspert
15. september 2005 - 08:32 #4
Det gælder jo om at finde et mønster!
Hvis vi tager et eksempel:

<table>
<tr><td>Hej Mor</td></tr>
<tr><td>Hej Far</td></tr>
<tr><td>Hej Alle</td></tr>
</table>

I dette tilfælde kunne en regexp finde alt som står mellem <tr><td>?????</td></tr>
En regexp kunne f.eks. se sådan ud:

preg_match_all('/<tr><td>(.+?)<\/td><\/tr>/', $html, $matches);

Men igen, det komme meget an på hvad man søger i.
Men ved f.eks. en liste burde det ikke være det store problem at finde et mønster.
Avatar billede jackass- Nybegynder
15. september 2005 - 09:10 #5
Jeg forstår ikke helt.. udgør (.+?) det samme som "*" - altså alt derimellem? Og hvad er $html og $matches..

Kan jeg lokke dig til at skrive et lille eksempel på at løbe sådan en side igennem?
Avatar billede jakobdo Ekspert
15. september 2005 - 09:34 #6
Det er ikke smukt, men:

$html = file_get_content("http://www.tv.com/24/show/3866/episode_listings.html&season=0");
preg_match_all('/<tr class="[\\w\\s-]+">\\s+?<.+?>\\s+?<a href="(\\S)+?">\\s+(\\d+:\\s+[\\d\\s:\\w\\.\\-]+)/', $html, $matches);
echo "<pre>";
print_r($matches);
echo "</pre>";
Avatar billede jackass- Nybegynder
09. januar 2006 - 12:12 #7
Fandt en anden måde
Avatar billede jakobdo Ekspert
09. januar 2006 - 12:33 #8
Så skal du jo bare beholde din point selv, og ikke vise andre hvad din løsning blev.
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