login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Regex (Opgelost)

Offline Wouser - 19/10/2007 17:53
Avatar van WouserPHP interesse Ik wil graag info van een website afhalen...
http://www.plaatscode.be/3714/

das de html, nu wil ik graag bijvoorbeeld de id's eruit halen van ieder landje, zie regel 644, 650, 658... etc.

Al die html in die code zit in de variabele $html... moet je even voorstellen... nu heb ik de volgende code om de id's eruit halen...

  1. <?php
  2.  
  3. list ( ,$content) = explode ("<img src=\"assets/Next.gif\" border=0 alt=\"Next\"></a>", $html);
  4. list ($content) = explode ("<img src=\"assets/Last.gif\" border=0 alt=\"Last\"></a>", $content);
  5.  
  6. preg_match_all("<a title='Display Nation' href=\"nation_drill_display.asp?Nation_ID=(.*?)\">", $contents, $matches, PREG_SET_ORDER);
  7.  
  8. print_r($matches);
  9. ?>


Echter krijg ik geen result bij $matches...? Iemand een idee wat ik fout doe?

11 antwoorden

Gesponsorde links
Offline Ibrahim - 19/10/2007 19:02
Avatar van Ibrahim PHP expert sommige tekens zijn reserved in preg_match_all, en je moet delimeters gebruiken (zie mijn tutorial)
Offline Wouser - 19/10/2007 20:08
Avatar van Wouser PHP interesse
Psycho schreef:
sommige tekens zijn reserved in preg_match_all, en je moet delimeters gebruiken (zie mijn tutorial)


  1. preg_match_all("/<a title='Display Nation' href=/\"nation_drill_display.asp/?Nation_ID=(.*?)/\"/>", $contents, $matches, PREG_SET_ORDER);


Volgens mij heb ik nu alle tekens m.b.v. delimeters '/' gefilterd? maar toch krijg ik een error. over Unknown modifier '"
Offline Ibrahim - 19/10/2007 21:21
Avatar van Ibrahim PHP expert een delimeter is niet daarvoor bedoelt, je moet die teken helemaal vooraan je regex zetten, en helemaal achteraan
Offline Wouser - 19/10/2007 22:22 (laatste wijziging 19/10/2007 22:22)
Avatar van Wouser PHP interesse Ok dan moet het dus zo...

  1. preg_match_all("/<a title='Display Nation' href=\"nation_drill_display.asp?Nation_ID=(.*?)\">/", $contents, $matches, PREG_SET_ORDER);


Andere vraag vervolgens... Waarom krijgt $matches geen waarde...? Terwijl volgens mij die regex wel degelijk een x aantal keer in de html voorkomt...

Offline Ibrahim - 19/10/2007 22:59
Avatar van Ibrahim PHP expert de slash moet andersom 

je kunt beter deze gebruiken, minder verwarring ==> ~
Offline Wouser - 19/10/2007 23:06
Avatar van Wouser PHP interesse
  1. preg_match_all("~<a title='Display Nation' href=\"nation_drill_display.asp?Nation_ID=(.*?)\">~", $contents, $matches, PREG_SET_ORDER);


Ah ok harstikke bedankt maar dan snap ik nog steeds niet waarom $matches niet de ID bevat die ik gefiltert wil krijgen :S?
Offline Ibrahim - 20/10/2007 00:11
Avatar van Ibrahim PHP expert probeer eens dit:

  1. preg_match_all('~<a title=\'Display Nation\' href="nation_drill_display.asp?Nation_ID=(.*?)">~si', $contents, $matches, PREG_SET_ORDER);


:)
Offline Wouser - 20/10/2007 00:23 (laatste wijziging 20/10/2007 17:24)
Avatar van Wouser PHP interesse Nope niks :S snap niet waarom ie niet al die ID's pakt..

heb me code nu hier ff gedumpt... mss dat ik gewoon iets fout doe :S http://wouser.wo.funpic.org/test/test.phps
Offline Stijn - 20/10/2007 17:42
Avatar van Stijn PHP expert
  1. preg_match_all("~<a title='Display Nation' href=\"nation_drill_display\.asp\?Nation_ID=(.*?)\">~si", $content, $matches, PREG_SET_ORDER);
Een punt en een vraagteken zijn tekens van regex zelf, dus moet je die ook escapen.
Offline Wouser - 20/10/2007 21:53
Avatar van Wouser PHP interesse Harstikke bedankt!
Offline Ibrahim - 20/10/2007 21:57
Avatar van Ibrahim PHP expert aja, dat zag ik niet 

Druk maar op de groene vink 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.238s