PHP Suchen und Ersetzen

Hallo!
Folgendes Problem:
Ein Gästebucheintrag aus einer Datenbank enthält Platzhalter für Smileys wie :traurig: oder :lachen:
Diese sollen ersetzt werden durch ein Bild.
Meine Funktion will aber irgendwie nicht wirklich funktionieren:

function convertWildcard($message) {
$emos = array(‚smile‘, ‚lachen‘ … ect.);

foreach ($emos as $emo) {
$pattern = „/:“ . $emo . „:/“;
$replace = ‚‘;
$new_message = preg_replace($pattern, $replace, $message);
}
return $new_message;
}

Aufrufen tu ich das ganze dann so:

$new_messg = convertWildcard($row->message);

Was mach ich falsch?

Ein zweites Problem:
Ich habe auch Platzhalter, die so aussehen:

Der Text, der zwischen diesen Tags steht soll nochmal durch eine Funktion gehen, und wiederum ersetzt werden. In Perl hab ich das ganze so gelöst:

$messg =~ s/()([^]*)()/convertLeet($2)/ge;

wobei convertLeet() die Funktion ist, die den Text zwischen den Tags ersetzt. Klappt wunderbar, aber wie funktioniert das in PHP?

Schon mal vielen Dank im Voraus!
Gruß Christoph

Das erste Problem habe ich bereits gelöst :smile:

falsch:
$new_message = preg_replace($pattern, $replace, $message);

richtig:
$message = preg_replace($pattern, $replace, $message);

Aber wie kann ich Text der zwischen gefunden wird nochmals ersetzten?

Hallo!
Folgendes Problem:
Ein Gästebucheintrag aus einer Datenbank enthält Platzhalter
für Smileys wie :traurig: oder :lachen:
Diese sollen ersetzt werden durch ein Bild.
Meine Funktion will aber irgendwie nicht wirklich
funktionieren:

Hallo Christoph,
schau Dir mal Dein Ersatzstring an, erlaut derzeit (z.B.) /:smile:/

MfG Georg V.

P.S.: Das mit text müsste genauso gehen, hier solltest Du auf die Escapezeichen achten.

Okay - Hab’s allein hinbekommen.

$message = preg_replace_callback("/()([^]*)()/", „convertLeet“, $message);

convertLeet ist wieder die Funktion, die den Text zwischen den leet-Tags manipuliert.

Danke
Gruß Christoph