Hallo!
Ich bastele eine Methode, die Links aus Webseiten ausliest. Um das weiterzuverarbeiten sollen alle relativen Links in absolute umgewandelt werden. Das funktioniert auch soweit, ich hab nur ein problem:
Wenn bei Links keine " " darum sind, dann werden sie nicht genommen. Wenn ich das mit den " " weglassen würde, bestände die Gefahr, dass andere Attribute, wie title oder onclick des a-tags dabeikommen, die hinter dem href=blaaaa stehen. Wie muss ich den regulären Ausdruck dazu ändern?
Quelltext:
PHP-Code:
function getContent()
{
return file($this->url);
}
function getLinks()
{
preg_match_all("/<a[^>]+href(.*)>(.*)<\/a>/U",implode("\n",$this->getContent()),$sp);
$links = $sp[0];
$linksneu = array();
foreach($links as $link)
{
$linkurl = preg_replace("/<.*href=\"(.*)\">.*<\/a>/Ui","$1",$link);
if(!preg_match("/(.*):\/\/(.*)/Ui",$linkurl)) $linkurl = $this->url.$linkurl;
array_push($linksneu,$linkurl);
}
return $linksneu;
}
Gruß Freeaak