Wenn du schon so clever warst eine MySQL Tabelle mit sinnvollen Spalten zu erstellen, sollte doch der Rest kein Problem sein. Dein Quelltext ist mir ehrlich gesagt zu lang zum durchforsten.
Hol dir doch aus der DB den Inhalt als 2 Arrays (in einem die Codes, im anderen den Pfad)
Z.B.
PHP-Code:
$sel = "SELECT CONCAT('<img src=\"', imgSrc, '\">') AS imgTag, replaceCode FROM codeTable";
$res = mysql_query($sel);
$imgTags = array();
$codes = array();
while ($current = mysql_fetch_assoc($res)) {
$codes[] = $current['replaceCode'];
$imgTags[] = $current['imgTag'];
}
$text2 = str_replace($codes, $imgTags, $text1);
In der Variablen $text1 sollte dein Text mit den Smiley-Codes stehen (:grins:, :lach:, ..) und in $text2 sollten jetzt all diese Codes ersetzt sein durch die <img>-Tags, sofern sie in der Datenbank stehen sollten.
Getestet ist das ganze nicht.