Du bist nicht angemeldet.

1

Dienstag, 3. Februar 2004, 16:45

[PERL] Automatisches erkennen von Links in einem Text

Hi.

Heute ein Perl-Codeschnipsel, mit dem man in einem Code, URLs automatisch erkennen lassen kann und diese umwandlen lassen kann.

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
sub format_url {
# Den übergebenen Text in die Variable $temp_var einlesen
(my $temp_var) = @_;

# 2x versuchen Links zu erkennen. 
# 1. -> [URL]www.mamo-net.de[/URL] (also ohne [URL]http://[/URL] aber mit [URL]www.[/URL])
# 2. -> [URL]http://www.mamo-net.de[/URL] (also mit [URL]http://[/URL])
# target=_blank ist gegen den gewünschten target zu tauschen (2x)
$temp_var =~ s/([^\w\"\=\[\]]|[\n\b]|\A)\\*(\w+:\/\/[\w\~\.\;\:\,\$\-\+\!\*\?\/\=\&\@\#\%]+[\w\~\.\;\:\$\-\+\!\*\?\/\=\&\@\#\%])/$1<a href=\"$2\" target=_blank>$2<\/a>/isg;
$temp_var =~ s/([^\"\=\[\]\/\:\.]|[\n\b]|\A)\\*(www\.[\w\~\.\;\:\,\$\-\+\!\*\?\/\=\&\@\#\%]+[\w\~\.\;\:\$\-\+\!\*\?\/\=\&\@\#\%])/$1<a href=\"http:\/\/$2\" target=_blank>$2<\/a>/isg;

# Text mit formatierten Links zurückgeben
return $temp_var;
}


PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Irgend ein Text mit oder ohne URLs.
my $text qq~
Hallo Leutz.<br>
Habe super Seiten entdeckt:<br>
[URL]www.smileyarchiv.net[/URL]<br>
[URL]http://www.mamo8.de[/URL]<br>
[URL]http://webstyleboard.de[/URL]
~;
# Der Text der die sub zurückgibt wird ausgegeben, nachdem an die sub die Variable $text übergeben wurde.
# Alternativ kann man es auch wie folgt handhaben:
# $text = %format_url($text);
# #Irgendwelche Aktionen
# print "BlaBlaBla schrieb: $text<br>Signatur";
print &format_url($text);


Im Anhang ist das Script noch etwas ausführlicher und man sollte die Datei auch nehmen, da dieses Forum den Code wahrscheinlich nicht 1:1 ausgibt.
Datei einfach in xyz.cgi umbenennen und auf den Server laden. CHMOD 755 und im Browser aufrufen. Evtl. muss im Scipt die Perlpfadangabe geändert werden.

MfG MaMo

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »MaMo« (3. Februar 2004, 16:47)