[php] html tags vinden in een variabele

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik probeer iets te maken om hrefs te filteren uit een gedownloade html pagina.
Wat ik wil doen is een complete pagina in een variabele proppen en daaruit urls te fileren en te klikken. Hoe krijg ik dat voor elkaar?

PHP:
1
$raw_string = implode(file("http://www.goudengids.nl/list.asp?u=uitzendbureau"), "\n");


in de $raw_string staat de hele pagina en ik wil zoeken naar de "Meer info" links om die te openen. hoe kan ik deze eruit filteren?

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:51
Je kunt dit het beste oplossen met regexpen: P&W FAQ - Regular expressions

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik kan alleen maar voorbeelden van regular expressions vinden om bijvoorbeeld een e-mailadres te valideren. Ik wil de gevonden href="xxxx" graag isoleren en in een array stoppen... is er zoiets als een matchcase ofzo?

[ Voor 4% gewijzigd door Verwijderd op 15-09-2003 16:43 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Wat jij wil kan bijvoorbeeld met http://nl.php.net/manual/nl/function.preg-match-all.php , die geeft de matches in een array retour...

edit:
had een verkeerd linkje....

[ Voor 23% gewijzigd door Verwijderd op 15-09-2003 16:48 ]


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:51
offtopic:
het kan korter: http://nl.php.net/preg-match_all

Als je dit voorbeeld neemt:
<?PHP
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$html = "<b>bold text</b><a href=howdy.html>click me</a>";

preg_match_all ("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/", $html, $matches);

for ($i=0; $i< count($matches[0]); $i++) {
  echo "matched: ".$matches[0][$i]."\n";
  echo "part 1: ".$matches[1][$i]."\n";
  echo "part 2: ".$matches[3][$i]."\n";
  echo "part 3: ".$matches[4][$i]."\n\n";
}
?>

En je gaat eens kijken of je hier het part 1 van gebruiken kun je het wel voor elkaar krijgen.

Ik weet er verder niets van af hoor maar ik denk dat als je dit doet dat je dan alleen alle links krijgt:
PHP:
1
preg_match_all ("/(<a href=([\w]+)[^>]*>)(.*)(<\/\\2>)/", $html, $m);

[ Voor 147% gewijzigd door djluc op 15-09-2003 17:23 ]