Smilies durch Bilder ersetzen

Screendesigner

Grünschnabel
Hallo ich bin gerade dabei mein Gästebuch zu programmieren, und versuche vergeblich eine Lösung zu finden. Das Problem ist ich finde nicht die richtige Lösung,wie ich die Smilies durch Bilder ersetzen kann.

Code:
*Variablen zuweisen*/
$nickname = $_POST['nickname'];
$nachricht = $_POST['nachricht'];
$ip = getenv ("REMOTE_ADDR");
$leer = " - "; 
$time = date("d.m.Y").$leer.date("H:i");
$formid = $_POST['formid'];
$_SESSION['formid'] = $formid; 
?>

<form id="gb" name="gb" method="post" action="">
  <p>Nickname:
    <label for="nickname"></label>
  <input type="text" name="nickname" id="nickname" />
  </p>
  <p>
    <label for="nachricht"></label>
    <textarea name="nachricht" id="nachricht" cols="45" rows="5"></textarea>
    <input type="hidden" name="formid" id="formid" value="<?php echo rand() ?>" />
	<a href="javascript:SmilieEinfuegen(':)')"><img border="0" src='smilies/smiley.jpg'></a>
  </p>
  <p>
    <input type="submit" name="eintragen" id="eintragen" value="Senden" />
    <input type="reset" name="abrechen" id="abrechen" value="Zur&uuml;cksetzen" />
  </p>
</form>

<hr />
<?php
/*nur zum Anzeigen der Test Werte*/
echo $ip;
echo $time;
?>
<hr />
<?php

/*Doppelter eintrag prüfen*/
$result=mysql_query("SELECT * FROM ajax_shoutbox ORDER BY ID DESC"); 
while($row=mysql_fetch_array($result)) 
if ($row['nickname'] != $_POST['nickname']) {

/*Daten in DB schreiben*/
mysql_select_db("ajax_shoutbox");
mysql_query("INSERT INTO ajax_shoutbox (nickname, nachricht, ip, datum) VALUES ('".$nickname."', '".$nachricht."', '".$ip."', '".$time."')");

/*daten auslesen und anzeigen*/
$result=mysql_query("SELECT * FROM ajax_shoutbox ORDER BY ID DESC"); 
while($row=mysql_fetch_array($result)) 
{ 
print "User: $row[nickname]<br>Message: $row[nachricht]<br>Datum: $row[datum]<br>";  
}
}

else
{
	/*daten auslesen und anzeigen*/
$result=mysql_query("SELECT * FROM ajax_shoutbox ORDER BY ID DESC"); 
while($row=mysql_fetch_array($result)) 
{ 
print "User: $row[nickname]<br>Message: $row[nachricht]<br>Datum: $row[datum]<br>";  
}
}


?>


Würde mich über eure Hilfe freuen!
 
Ich würde mir hierfür eine Funktion basteln, welche den einzutragenden Text nach entsprechenden Textpassagen durchsucht und diese dann via str_replace durch den entsprechenden Bilderlink ersetzt.
 
Wie guenter es schon sagte, zwei Arrays. Im ersten die Kürzel und im zweiten dann den HTML-Code dazu.. Jene dann in str_replace() werkeln lassen..

PHP:
$scripted= array( 
   ":)" , 
   ":D" 
);
$htmled= array(
   "<img src='lol.gif' alt='lol'/>", 
   "<img src='rofl.gif' alt='rofl'/>"
);

$gBuch=str_replace($scripted, $htmled, $gBuch);

mfg chmee
 
Zuletzt bearbeitet:
Ich würde lieber preg_replace verwenden.
Das könnte so aussehen:
PHP:
$suchmuster = Array();
$ersaetzung = Array();
$suchmuster[] = "/\:\-\)/";
$ersaetzung = '<img src="simplesmiley.gif" />';
$result = preg_replace($suchmuster,$ersaetzung ,$text);
In diesem Beispiel macht das Array zwar keinen sinn, aber wenn man mehrere smokest hat...
Am besten schaust du dir die Funktion mal bei PHP.Net an.
Achtung: Ich habe das alles auf meinem iPod geschrieben. Bitte prüf den Quellcode bevor du ihn benutzt.
 
Warum würdest Du lieber preg_replace() nehmen?

In solch einem "statischen" Fall sehe ich keinen Vorteil von Regexp,
noch dazu ist es langsamer, was hier wohl nicht auffallen würde..

mfg chmee
 
Zurück