perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 30
Click for quality!




11.02.2012 / 18:22

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragPerl RegExp mit sub // oder Links konvertieren mit CPAN modul
Seitenanfang
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

Beitragre: Perl RegExp mit sub // oder Links konvertieren mit CPAN modul
Seitenanfang
also ein Modul hab ich, das funktioniert soweit - nur der kram mit dem RegExp nicht :-/


use URI::URL;
my $link="/e/bla.htm";
my $l = URI::URL->new($link); # href-Attribut
$link = $l->abs($url);

Datum: 01.07.2005-12:02

Beitragdone
Seitenanfang

$content=~s#(<\s*a\s*href\s*=\s*")(.*?)(".*?<\/a>)#absolut($2,$url)#egis;

Datum: 01.07.2005-13:04

-






-
-