Hallo,
ich habe einen Text mit "[link=76,param=43]" welcher ersetzt werden soll , und zwar mit einem Text aus einer Datenbank!
ah, also andersherum, als ich es verstanden hatte (und als Du es oben erklärt hattest).
Dann versuche es doch so:
// 1.: die ID aus dem Text holen
preg_match('@[link=([^"]+),param=([^"]+)]@si', $text, $matches);
// 2.: zu der ID den Namen aus der DB holen
$sql = "SELECT name FROM test WHERE id='".$matches[0]."'"
$result = mysql_query($sql);
$dataset = mysql_fetch_assoc($result);
// 3.: die ID im Text durch den Namen ersetzen
$text = preg_replace('@[link=([^"]+),param=([^"]+)]@si', $dataset['name'], $text);
Mir kommt das zwar alles ein bißchen schwurbelig vor - aber ich kenne den Kontext Deines Problems nicht. Es sollte so jedenfalls klappen.
(Alternativ könntest Du tatsächlich, wie ein anderer User ja schon vorschlug, mit preg_replace_callback() arbeiten.)
Ciao,
Andreas
"Das Corporate Design für das Internet sieht eine Reihe von Grafikelementen vor, die die Optik der Webseite visuell und funktionell beeinflussen." - (Zitat aus dem "Styleguide Corporate Design" eines großen Konzerns...)