Hallo, ich habe ein Problem mit str_replace ich bin dran ein chat am programmieren und dann möchte ich das im chat frame wenn man den befehl „:)“ eingibt das dann das dazu passende smilie „“ ausgegeben wird.
Mein code den ich bis jetzt habe ist:
[PHP]
<?php
$Text = str_replace (':)','<img src="smilies/1.gif>',$Text);
?>
<p>[/PHP]<br>
mein problem ist jetzt wo muss ich den code einfügen in den chat frame (da sind alle einträge) oder da wo ich die eingabe schreibe?</p>
<p>was ich noch nicht weiß muss $Text der name des text feldes sein oder kann das einfach so da stehen?</p>
<p>MfG: Jul-Place</p>
Dann sollte $text eben der aus der MySQL-DB ausgelesene Text sein.
Ungefähr so:
[php]
<?php
//Vorher zur DB connecten
$sql = "SELECT text FROM chat ORDER by text";
$qry = mysql_query($sql);
while($row = mysql_fetch_array($qry)) {
$str = str_replace(":)", '', $text);
echo $row['text'];
}
?>
[/php]
Allerdings hab ich das Script nicht getestet und lasse mich gerne verbessern.
Edit:
Da war wohl einer schneller.
Bitte die [noparse][php][/noparse]-Codes benutzen und den Code einrücken.
Würde ich den normalen Code ausgeben und jede Variabel in der Funktion smiley() ausgeben, die definiert wurde. Netüclih müssen alle Felder in der DB in der richtigen Tabelle vorhanden sin. Der Code muss ja auch nen Sinn ergeben.
-.- Es bringt auch nichts den erstezten Inhalt an die Variabel $str zu übergeben. Wenn du in $row[‚Text‘ alles ersetzt musst du auch statt $row[‚Text‘] dann String ausgeben lassen. Ich sage ja mit einer Funktion wäre es einfacher.
Lass die if-Anweisung weg und benutze die Funktion. Hab jetz leider keine Zeit mehr aber wenn du willst, schick ich dir heute Abend per PN nen funktionierenden Code.
ähm einfach
[PHP]
$row[‚Text‘] = str_replace(„:)“,„text“, $row[‚Text‘]);
echo $row[‚Text‘]
[/PHP]
oder du benutzt preg_replace() mit dem Modifikator e
[PHP]
$row[‚Text‘] = preg_replace(„/:)/ise“,„“.echo $text.„“, $row[‚Text‘]);
[/PHP]