Hallo,
ich möchte aus einem HTML Dokument (in $content) alle Links zu absoluten machen.# ../ links die url davor setzen
$content=~s/(<\s*a\s*href\s*=\s*")(\.\..*?)(".*?<\/a>)/$1$url\/$2$3/gis;
# / links url davor setzen
$content=~s/(<\s*a\s*href\s*=\s*")(\/.*?)(".*?<\/a>)/$1$url$2$3/gis;
# übrigen, nicht absoluten links zb "bla.htm"
$content=~s#(<\s*a\s*href\s*=\s*")(.*?)(".*?<\/a>)#&{sub absolute($2.$url);}#gis;
sub absolute {
my $temp=shift;
my $url=shift;
if ($temp=~ /http|ftp|https/i) {
return $1.$temp.$3;
}
elsif ($temp=~ /\.\./) {
return $1.$url."/".$temp.$3;
}
elsif ($temp=~ /\//) {
return $1.$url.$temp.$3;
}
}
Aber das mit dem Aufruf von sub absolute klappt nicht. Wie macht man das bei regulären Ausdrücken?
Alternativ gibt es bestimmt ein Modul im CPAN, was das leistet.
Falls mir jemand einen Tipp geben oder Modul nenen kann wäre das super. Generell interessiert mich die Frage mit sub im regulären Ausdruck aber auch sehr.
Datum: 01.07.2005-11:43
