use URI::URL; my $link=new URI::URL ($datei,$basis); return $link->abs; |
sub make_link_absolut{ use URI::URL; my $basis=shift; my $datei=shift; return -1 if ($datei eq ''); return -1 if ($basis eq ''); # wenn kein abschließendes / vorhanden, dann prüfen ob Verzeichnis oder Datei als Basis if (substr($basis,-1) ne '/'){ my @basis_parts=split(/\//,$basis); # Wenn Basis = Hauptdomain if (@basis_parts == 3){ #wenn Basis = Hauptdomain und in Link ist ein ../, dann mit Fehler zurück return -1 if (index ($datei,'..') != -1); #ansosnsten ein / anhängen $basis.='/'; } else { #wenn Unterverzeichnis oder Datei my $lastpart=$basis_parts[-1]; if (index($lastpart,'.') eq '-1'){$basis.='/';} } } my $link=new URI::URL ($datei,$basis); return $link->abs; } |
print &make_link_absolut("http://www.test.de/test/hans.htm" , "http://www.testdomain.de/test.gif")."\n"; print &make_link_absolut("http://www.test.de/test","test.gif")."\n"; print &make_link_absolut("http://www.test.de/test/","test.gif")."\n"; print &make_link_absolut("http://www.test.de/test","../test.gif")."\n"; print &make_link_absolut("http://www.test.de/test/test.htm","test.gif")."\n"; print &make_link_absolut("http://www.test.de","../test.gif")."\n"; |