Hallo Thomas.
Eigentlich meinte ich folgendes:
$text = "Hier steht ein Text mit einem Link zur Person [name=Hubert].";
nach preg_match sollte dann folgendes stehn:
$text = "Hier steht ein Text mit einem Link zur Person <a href="[hostname]/Hubert">Hubert</a>.";=> vor [ und ] gehört ein Backslash, aber was stimmt da immer noch nicht?
$text = preg_match("=[(.*)]=U", '<a href="[hostname]/'.$1.'">'.$1.'</a>', $text);
1. Du meinst vermutlich eigentlich preg_replace. Ansonsten würdest du mit obigem Kommando das Ergebnis der Ersetzung als Array in $text ablegen und dies sogleich darauf wieder verwerfen, da du in die gleiche Variable den Rückgabewert von preg_match hineinschreiben lässt.
2. Rückreferenzen im Ersatzstring gehören zu diesem und sind keine plötzlich definierten Variablen
3. Du übernimmst den gesamten Inhalt der eckigen Klammern, ohne den Namen zu extrahieren.
Zusammenfassend also:
$text = "Hier steht ein Text mit einem Link zur Person [name=Hubert].";
$text = preg_replace('!\[name=(.*)\]!U',
'<a href="[hostname]/$1">$1</a>', $text);
echo $text; // Hier steht ein Text mit einem Link zur Person <a href="[hostname]/Hubert">Hubert</a>.
Einen schönen Montag noch.
Gruß, Mathias
ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
debian/rules