Aus eingelesener Website (in Variable) alle Links ausfiltern?
Antje Bijken
- php
Hallo,
mein Problem:
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:
http://www.link.de
http://www.zweiterlink.de
http://www.nocheinlink.de
[...]
Kann mir jemand weiterhelfen?
Gruss und Kuss,
Antje
Hallo,
Kann mir jemand weiterhelfen?
Dieses Problem löst du am besten mit regulären Ausdrücken. Dieser Link hilft dir dabei sicher weiter: http://www.dclp-faq.de/q-regexp-links-finden.html. Das hilft dir sicher weiter.
Grüße aus Darmstadt,
Benjamin
hi,
http://www.link.de
http://www.zweiterlink.de
http://www.nocheinlink.de
$zeile = str_replace("<a href=""," ",$zeile);
$zeile = str_replace("</a>""," ",$zeile);
ungefähr so denke ich....
Kuss,
wie unverschämmt ;-)
Antje
hi,
http://www.link.de
http://www.zweiterlink.de
http://www.nocheinlink.de
so wohl eher sorry::::
$zeile = str_replace("<a href="," ",$zeile);
$zeile = str_replace("</a>"," ",$zeile);
ungefähr so denke ich....
Kuss,
wie unverschämmt ;-)
Antje
Hallo,
$zeile = str_replace("<a href="," ",$zeile);
$zeile = str_replace("</a>"," ",$zeile);
Was willst du mit str_replace erreichen? Damit wird ein String durch einen anderen ersetzt. Sie will doch die Daten in einer Liste haben... bie str_replace, sind die Daten weg.
Witzige Mailadresse, im Übrigen ;-)
Grüße aus Darmstadt,
Benjamin
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
Viel Dank an Euch!
Besonders der Link zum Script war hilfreich.
Kuss Antje