[PHP] REGEX en loop

Pagina: 1
Acties:
  • 35 views sinds 30-01-2008

  • Quartje
  • Registratie: Oktober 2000
  • Laatst online: 07-09 11:55
Hoi! Ik probeer om de filmpagina's van IMDB.com te parsen. Dus genre, titel, jaar, rating etc. parsen. Dat lukt heel aardig, totdat ik probeer om de lijst met de cast te parsen. De eerste van de lijst gaat goed, mbv de volgende code (een fragment):
PHP:
1
2
3
4
5
6
7
<?
//$the_string is de volledige HTML-pagina 
//$cast[4] levert de eerste naam uit de cast-lijst op. 

ereg("(<TD VALIGN=\"TOP\"><A HREF=\"/Name\?)([A-Za-z0-9,\+]+)(\">)([A-Za-z 0-9]+)(</A></TD>)", $the_string, $cast); 
echo $cast[4];
?>

Maar nu wil ik dus ook de rest van de cast-lijst parsen, maar dat lukt dus niet. Heeft iemand een oplossinkje hiervoor? :)

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Met ereg zou ik zo niet weten, volgens mij kan dat niet. Je zou met ereg_replace na elke match het desbetreffende stukje weg kunnen halen en dan opnieuw zoeken.

Je kan ook met preg_match_all meerdere matches in een keer opvragen. Dan moet je wel je reguliere expressie naar de perl stijl omzetten.
code:
1
|<TD VALIGN=\"TOP\"><A HREF=\"/Name\?([A-Za-z0-9,\+]+?)\">([A-Za-z 0-9]+?)</A></TD>|i

Zoiets kan je dan gebruiken. Je moet goed opletten op welke manier preg_match_all de waardes teruggeeft!

  • tomato
  • Registratie: November 1999
  • Niet online
Op dinsdag 15 januari 2002 01:03 schreef Orphix het volgende:
Zoiets kan je dan gebruiken. Je moet goed opletten op welke manier preg_match_all de waardes teruggeeft!
Inderdaad, ik vind het in de meeste gevallen een stuk logischer om een PREG_SET_ORDER mee te geven.

  • Quartje
  • Registratie: Oktober 2000
  • Laatst online: 07-09 11:55
hmm, ik ben net gewend aan de notatie voor ereg....

maar hoe moet ik dan dat string pattern omzetten in PERL-style? Is dat een overzichtje voor?

  • tomato
  • Registratie: November 1999
  • Niet online
Quartje: maar hoe moet ik dan dat string pattern omzetten in PERL-style? Is dat een overzichtje voor?
Dat heeft Orphix al voor je gedaan :D

Kijk voor PCRE verder op http://www.php.net/pcre

En verschillende perl regex manpages, references en tutorials :)

[edit]
Orphix heeft hier ook nog de + quantifiers greedy voor je gemaakt (door er een ? achter te zetten), hoewel dat eigenlijk niet eens nodig was in dit pattern.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

tomato:
Inderdaad, ik vind het in de meeste gevallen een stuk logischer om een PREG_SET_ORDER mee te geven.
true. Snap ook niet dat dat niet default is...

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Klaar voor een nieuwe uitdaging.

Pagina: 1

Dit topic is gesloten.