Links anklickbar machen, aber...
Tom
- php
Moin,
ich hätte gerne eine RegEx, die in einem String "http://www.domauin.tld/" durch "<a href="http://www.domain.tld/">http://www.domain.tld/</a>" ersetzt, aber bereits existierende Links nicht zerstört.
Folgendes habe ich schon:
function make_link($string)
{
$pattern = '#(^|[^"=]{1})(http://|ftp://|mailto:|news:)([^\s<>]+)([\s\n<>]|$)#sm';
$string = preg_replace($pattern,"\1<a href="\2\3">\2\3</a>\4",$string);
return $string;
}
Wie kann ich da noch einbauen, dass alles zwischen "<a" und "</a>" ignoriert wird?
Schon mal Danke, Tom
Hi,
ich hätte gerne eine RegEx, [...] aber bereits existierende Links nicht zerstört.
eine einzelne RegExp reicht nicht aus. Entwickle einen komplexeren Algorithmus.
Wie kann ich da noch einbauen, dass alles zwischen "<a" und "</a>" ignoriert wird?
Hierzu ist ein Kapitel der Perl-Doku interessant, wenn auch für Dein Problem nicht komplett ausreichend: http://www.perldoc.com/perl5.8.0/pod/perlfaq4.html#How-can-I-split-a-[character]-delimited-string-except-when-inside [character]--(Comma-separated-files)
Cheatah
Hi Tom,
ich hätte gerne eine RegEx, die in einem String "http://www.domauin.tld/" durch "<a href="http://www.domain.tld/">http://www.domain.tld/</a>" ersetzt, aber bereits existierende Links nicht zerstört.
wirf doch aus deiner Quelle erstmal die <a ..></a> raus. Dann kannst du _alle_ http://... wieder mit dem <a> tag umrahmen.
Gruss,
Carsten