Smilies beim Ausgeben aus der DB umwandeln

Stelo

Erfahrenes Mitglied
Hiho,

für LS brauch ich ein Script, in dem man erst etwas in ein Textfeld eingibt, z.B. auch mit den Smilies ": )". So sollen sie auch in der DB gespeichert werden. Beim Ausgeben allerdings sollen sie dann mit einer Grafik ersetzt werden. Dazu include ich eine Datei, die wie folgt aussieht:

PHP:
function smilies($text)
    {
        $text = str_replace(':)',"<img src=\"luxurystables.lu.funpic.de/images/1.gif\">", $text);
        $text = str_replace("=)","<img src=\"luxurystables.lu.funpic.de/images/3.gif\"> ", $text);
        $text = str_replace('=)',"<img src=\"luxurystables.lu.funpic.de/images/3.gif\">", $text);
        $text = str_replace(':P',"<img src=\"luxurystables.lu.funpic.de/images/4.gif\">", $text);
        $text = str_replace(';)',"<img src=\"luxurystables.lu.funpic.de/images/5.gif\">", $text);
        $text = str_replace(':D',"<img src=\"luxurystables.lu.funpic.de/images/6.gif\">", $text);
        $textr = str_replace(':(',"<img src=\"luxurystables.lu.funpic.de/images/7.gif\">", $text);
       
        return $text;
    }

$text ist der Text, denn ich aus der DB ausgeben lasse.
Aber die Smilies werden nicht als Grafiken angezeigt, sondern eben normal als Text ": )".

Ich find nur leider den Fehler nicht, vllt. kann mir ja jemand helfen?!

Oder sollte man das lieber schon vor dem speichern in die DB umwandeln?
 
Nein, man sollte sie nicht vorher umwandeln, da etwaige Veränderungen an der Ordnerstruktur oder Umbenennen der Smilies dann sämtliche "alten" Einträge unbrauchbar machen würde.

Weiterhin funktioniert die Funktion einwandfrei im Test.

Wo bindest du die Funktion denn ein?
 
Darf ich fragen, warum du beim 1. parameter von str_replace ' ' und bei den restlichen " " benutzt?


Hier gibts aber auch BBCode Tutorials. Da kannste mal schauen
 
Bei dem zweiten habe ich " " verwendet, um zu testen, ob es vllt. damit funktioniert.

ich habe die funktion in der pageersetzen.php gespeichert und binde sie hier ein:
PHP:
$page = $_GET['page'];

if($page == "verschiedenes") {
$abfrage = "SELECT * FROM mitglieder WHERE nick = '$nick'";
$ergebnis = mysql_query($abfrage) OR die(mysql_error() );
 if ($row = mysql_fetch_assoc($ergebnis) ) {
$text = $row['frei'];
include ("pageersetzen.php");
echo "<div algin='center'>
".nl2br("$text")."
";
}
}

In der gleichen Datei sind aber auch funktionen für die BB Codes und das funktioniert.
 
Du greifst auf die Funktion ja gar nicht zu?

PHP:
$page = $_GET['page'];

if($page == "verschiedenes") {
$abfrage = "SELECT * FROM mitglieder WHERE nick = '$nick'";
$ergebnis = mysql_query($abfrage) OR die(mysql_error() );
 if ($row = mysql_fetch_assoc($ergebnis) ) {
$text = $row['frei'];
include ("pageersetzen.php");
echo "<div algin='center'>
".nl2br(smilies($text))."
";
}
}

Probier es einmal so.
 
Das muss ich auch noch machen? O.o

Naja, ich habs den Code nur kopiert. Ich hab davon nicht viel Ahnung! Aber danke, ich probier es gleich mal.

Wie muss es denn aussehen, wenn ich auf mehrer Funktionen zugreifen möchte? Trenn ich das dann nur mit einem Komma?

EDIT: greif ich so auf die Funktion zu, wird zwar der Text, angezeigt, aber keine smileys mehr, weder als Grafik noch als Text. O.o
 
Zuletzt bearbeitet:
Ja, das musst du auch noch tun.

Inwiefern auf mehrere Funktionen?

Nehmen wir mal an, es gäbe func1, func2, func3 und funcN und du willst alle auf die Variable $var anwenden:
PHP:
func1(func2(func3(funcN($var))));
 
Wie gesagt:
EDIT: greif ich so auf die Funktion zu, wird zwar der Text, angezeigt, aber keine smileys mehr, weder als Grafik noch als Text. O.o
 
Ah vielen Dank. Es funktioniert.
Aber ich bin blöd, dass mit dem http:// hätte mir auch selbst auffallen können! -.-""
 
Zurück