Moin!
ich habe eine Website eingelesen, diese liegt nun in einer Variablen. Aus dieser möchte ich nun alle Link separieren, so dass ich eine Liste erhalte wie etwa folgt:
Ich habe für sowas mal eine Lösung programmiert:
Ausgangslage: Die einzelnen Zeilen der Seite liegen im Array $seite - eingelesen mit $seite = file('dateiname').
for ($i=0;$i<count($seite);$i++)
{
preg_match_all("(<[aA] [^>]*>[^<]*</[aA]>)",$seite[$i],$resultat,PREG_SET_ORDER);
if (count($resultat)>0)
{
foreach ($resultat as $einlink)
{
eregi("href="([^"]*)"",$einlink[0],$href);
eregi(">(.*)</a>",$einlink[0],$linktext);
echo "Linktext:".$linktext[1]." Linkziel:".$href[1]."<br>";
}
}
}
Diese Schleife sucht zweistufig:
Zuerst werden alle <a>-Elemente herausgesucht. Wenn eins gefunden wurde, dann wird nach dem Text zwischen <a> und </a> gesucht, sowie der Inhalt des href-Attributes. Kleiner Schönheitsfehler: Das Linkziel muß in doppelten Anführungszeichen stehen, sonst wird nichts gefunden. Ist aber schnell zu reparieren.
- Sven Rautenberg
Diese Signatur gilt nur am Freitag.