10.09.2008, 09:20 Uhr

Links aus einem HTML-Dokument extrahieren

Sie wollen alle Links aus einem HTML-Dokument extrahieren? Eine einfache Funktion mit RegExp hilft Ihnen dabei.
Sie wollen alle Links aus einem HTML-Dokument extrahieren? Eine einfache Funktion mit RegExp hilft Ihnen dabei.
Wenn Sie die innerhalb eines HTML-Dokuments enthaltenen URLs herausziehen wollen, können Sie die folgende Funktion pc_link_extractor() dazu verwenden:
function pc_link_extractor($s) {
$a = array();
if (preg_match_all ('/<a\s+.*?href=[\"\']?([^\"\' >]*)[\"\']?[^>]*> (.*?)<\/a>/i', $s,$matches,PREG_SET_ORDER)) {
foreach($matches as $match) {
array_push($a,array($match[1],
$match[2]));
}
}
return $a;
}
Und so können Sie diese Funktion in ein eigenes Skript einbinden:
$links = pc_link_extractor($page);
Die Funktion pc_link_extractor() gibt ein Array zurück. Jedes Element dieses Arrays ist selbst wiederum ein Array, dessen erstes Element das Ziel des Links und dessen zweites Element den verlinkten Text enthält. Der reguläre Ausdruck in der Funktion erkennt nicht alle Links, zum Beispiel nicht solche, die mit Javascript oder mit hexadezimalen Escape-Sequenzen gebildet werden. Aber bei der Mehrzahl der einigermaßen wohlgeformten HTML-Seiten sollte es funktionieren.




Das könnte Sie auch interessieren