Regulärer Ausdruck für Links wie in Wikipedia
Tommi
- php
Hallo,
ich suche einen regulären Ausdruck, der Links so wie in Wikipedia umwandelt:
Aus [[Link]] soll <a href="Link">Link</a> und aus [[Link|Linktext]] soll <a href="Link">Linktext</a> werden.
Habe folgendes probiert, funktioniert aber nicht richtig:
$text = preg_replace("#[[(.+?)|(.+?)]]#is", "<a href="\1">\2</a>", $text);
$text = preg_replace("#[[(.+?)]]#is", "<a href="\1">\1</a>", $text);
Kann mir jemad weiterhelfen?
Danke!
Tommi
Hallo!
Aus [[Link]] soll <a href="Link">Link</a> und aus [[Link|Linktext]] soll <a href="Link">Linktext</a> werden.
$string = preg_replace("/[[(.*?)|(.*?)]]/is", "<a href="\1">\2</a>", $string);
MfG, André Laugks
Hallo André,
Aus [[Link]] soll <a href="Link">Link</a> und aus [[Link|Linktext]] soll <a href="Link">Linktext</a> werden.
$string = preg_replace("/[[(.*?)|(.*?)]]/is", "<a href="\1">\2</a>", $string);
...hm, ja, aber das kollidiert immernoch mit [[Link]] (also ohne Linktext).
Tommi
gudn tach!
$string = preg_replace("/[[(.*?)|(.*?)]]/is", "<a href="\1">\2</a>", $string);
...hm, ja, aber das kollidiert immernoch mit [[Link]] (also ohne Linktext).
ich rate mal mit:
$string1=preg_replace('/[[([^|]]+?)(?:|([^]]+))?]]/e', "'<a href="$1">'.(('$2')?'$2':'$1').'</a>'", $string);
prost
seth
Hallo seth,
ich rate mal mit:
$string1=preg_replace('/[[([^|]]+?)(?:|([^]]+))?]]/e', "'<a href="$1">'.(('$2')?'$2':'$1').'</a>'", $string);
Jau, das sieht gut aus, danke!
Gruß
Tommi