Exaktes Wort ersetzen mit str_ireplace

DerKleene1

Mitglied
Hallo Gemeinde,

ich habe ein kleines Problem, wo ich momentan nicht auf eine Lösung komme.
Ich habe folgenden Code, der bewirken soll, das wenn in einem Beitrag ein
Username geschrieben wird, das er den Usernamen mit einem Link zum Profile ersetzen soll.
PHP:
$result_name_link=$db->query("SELECT userid,username FROM bb".$n."_users ORDER BY userid");
$search_name_link = array();
$replace_name_link = array();
while($row_name_link=$db->fetch_array($result_name_link)) {
	$search_name_link[] = stripslashes($row_name_link[username]);
 	$replace_name_link[] = "<a href=\"profile.php?userid=" .$row_name_link[userid]. "\">" .stripslashes($row_name_link[username]). "</a>";
}
$posts['message'] = str_ireplace($search_name_link,$replace_name_link,$posts['message']);
das funktioniert auch eigentlich super.
Nur leider, als Bsp. nun, ersetzt er bei dem Wort Tanja, auch das anja in Tanja,
wenn es einen Usernamen Anja gibt.
Kann mir einer helfen, das er nur das exakte gefundene Wort ersetzt?
Vielen Dank schon mal im vorraus.

Gruß DerKleene (Heiko)
 
Grüße,

da bedarf es anscheinend noch eines Delimiters.
Probier mal folgendes aus:

PHP:
$search_name_link[] = "%".stripslashes($row_name_link[username])."%";

Wenn das überhaupt geht...bin leider schon ne Weile raus aus PHP (man da wirds in den Semesterferien mal wieder zeit :D)
 
Hallo,

danke für Deine Antwort, nur leider findet er nun keine Usernamen mehr,
oder besser gesagt ersetzt er nun gar nichts mehr.

(ich habe auch schon einige Zeit nichts mehr in PHP gemacht, was wohl ein Nachteil ist momentan)
 
nimm preg_replace und setz Leerzeichen,Textanfang und andere Satzzeichen als mögliche Zeichen davor und dahinter.

mfg chmee
 
Zurück