Regex (Opgelost)
Wouser - 19/10/2007 17:53
|
PHP 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...
<?php
list ( ,$content) = explode ("<img src=\"assets/Next.gif\" border=0 alt=\"Next\"></a>", $html);
list ($content) = explode ("<img src=\"assets/Last.gif\" border=0 alt=\"Last\"></a>", $content);
preg_match_all("<a title='Display Nation' href=\"nation_drill_display.asp?Nation_ID=(.*?)\">", $contents, $matches, PREG_SET_ORDER);
print_r($matches);
?>
<?php list ( ,$content) = explode ("<img src=\"assets/Next.gif\" border=0 alt=\"Next\"></a>", $html); list ($content) = explode ("<img src=\"assets/Last.gif\" border=0 alt=\"Last\"></a>", $content); preg_match_all("<a title='Display Nation' href=\"nation_drill_display.asp?Nation_ID=(.*?)\">", $contents, $matches, PREG_SET_ORDER ); ?>
Echter krijg ik geen result bij $matches...? Iemand een idee wat ik fout doe?
|
11 antwoorden
Gesponsorde links |
|
Ibrahim - 19/10/2007 19:02
|
PHP expert |
|
sommige tekens zijn reserved in preg_match_all, en je moet delimeters gebruiken (zie mijn tutorial) |
Wouser - 19/10/2007 20:08
|
PHP interesse |
|
Psycho schreef: sommige tekens zijn reserved in preg_match_all, en je moet delimeters gebruiken (zie mijn tutorial)
preg_match_all("/<a title='Display Nation' href=/\"nation_drill_display.asp/?Nation_ID=(.*?)/\"/>", $contents, $matches, PREG_SET_ORDER);
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 '" |
Ibrahim - 19/10/2007 21:21
|
PHP expert |
|
een delimeter is niet daarvoor bedoelt, je moet die teken helemaal vooraan je regex zetten, en helemaal achteraan |
Wouser - 19/10/2007 22:22 (laatste wijziging 19/10/2007 22:22)
|
PHP interesse |
|
Ok dan moet het dus zo...
preg_match_all("/<a title='Display Nation' href=\"nation_drill_display.asp?Nation_ID=(.*?)\">/", $contents, $matches, PREG_SET_ORDER);
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...
|
Wouser - 19/10/2007 23:06
|
PHP interesse |
|
preg_match_all("~<a title='Display Nation' href=\"nation_drill_display.asp?Nation_ID=(.*?)\">~", $contents, $matches, PREG_SET_ORDER);
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? |
Ibrahim - 20/10/2007 00:11
|
PHP expert |
|
probeer eens dit:
preg_match_all('~<a title=\'Display Nation\' href="nation_drill_display.asp?Nation_ID=(.*?)">~si', $contents, $matches, PREG_SET_ORDER);
preg_match_all('~<a title=\'Display Nation\ ' href="nation_drill_display.asp?Nation_ID=(.*?)">~si', $contents, $matches, PREG_SET_ORDER );
:) |
Wouser - 20/10/2007 00:23 (laatste wijziging 20/10/2007 17:24)
|
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 |
Stijn - 20/10/2007 17:42
|
PHP expert |
|
preg_match_all("~<a title='Display Nation' href=\"nation_drill_display\.asp\?Nation_ID=(.*?)\">~si", $content, $matches, PREG_SET_ORDER);
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. |
Wouser - 20/10/2007 21:53
|
PHP interesse |
|
Harstikke bedankt! |
Gesponsorde links |
|
Dit onderwerp is gesloten. |
|