Smileys im Forum per PHP umsetzen
sky.connect
- php
Hi,
ich möchte in meinem Forum Smileys einbauen. Ich realisiere es bisher per Javascript, indem man auf ein Smiley klickt und dann im textarea dann z.B. ':-)' eingefügt wird. Gibt es eine möglichkeit, jetzt bei der Ausgabe per PHP anstatt eines ':-)' dann ein Bild anzuzeigen?
Also alle vordefinierten Text-smileys sollen durch das Bild-smiley ersetzt werden.
Thx
sky.
Hi,
Hi
dein Zauberwort heisst: http://www.php.net/manual/de/function.ereg-replace.php
Thx
sky.
Tschaui Christoph
Hallo Christoph,
dein Zauberwort heisst: http://www.php.net/manual/de/function.ereg-replace.php
Schlechte Idee. ereg ist zum einen langsam und zum anderen nicht binärkompatibel. Für Zeichenkettenersetzungen sollte man möglichst str_replace (http://de3.php.net/manual/de/function.str-replace.php) und nur wenn reguläre Ausdrücke wirklich gebraucht werden, preg_replace verwendet werden.
Viele Grüße,
Christian
Hallo Christian
Schlechte Idee. ereg ist zum einen langsam und zum anderen nicht binärkompatibel. Für Zeichenkettenersetzungen sollte man möglichst str_replace (http://de3.php.net/manual/de/function.str-replace.php) und nur wenn reguläre Ausdrücke wirklich gebraucht werden, preg_replace verwendet werden.
Hm, ok, bisher hab ich mir dabei nie was gedacht, aber jetzt weiss ich ja Bescheid :)
Vielen Dank.
LG Christoph
Hi!
Ich stimme Dir zwar voll und ganz zu, aber wieso braucht man hier Binärkompatibilität?
Außerdem hatten wir doch genau sowas vor kurzem hier, leider finde ich den Thread nicht, da die Suche zur Zeit ein paar Probleme zu haben scheint.
Grüße
Andreas
Hallo Andreas,
Ich stimme Dir zwar voll und ganz zu, aber wieso braucht man hier Binärkompatibilität?
Man stelle sich vor, ein "Angreifer" gibt einen Text ein, in dem das Null-Zeichen vorkommt. Ich weiß zwar nicht, was dann passiert (habe es nie ausprobiert) aber das gewünschte Ergebnis kommt garantiert _nicht_ heraus. (das gewünschte Ergebnis wäre, dass das Null-Zeichen einfach ignoriert wird, sofern es nicht im regulären Ausdruck steht)
Außerdem hatten wir doch genau sowas vor kurzem hier,
Habe ich entweder verpasst oder vergessen.
Viele Grüße,
Christian
Hi Christian!
Man stelle sich vor, ein "Angreifer" gibt einen Text ein, in dem das Null-Zeichen vorkommt. Ich weiß zwar nicht, was dann passiert (habe es nie ausprobiert) aber das gewünschte Ergebnis kommt garantiert _nicht_ heraus. (das gewünschte Ergebnis wäre, dass das Null-Zeichen einfach ignoriert wird, sofern es nicht im regulären Ausdruck steht)
OK, damit kenne ich ich nicht aus ;-)
Außerdem hatten wir doch genau sowas vor kurzem hier,
Habe ich entweder verpasst oder vergessen.
Sicher nicht? Die Lösung kam IMHO von Dir, glaube ich zumindest, das war das mit 700 smilies ersetzen und dem Array mit den pattern und replacements, wenn ich nicht irre. Vielleicht war es auch jemand anders, aber es war genau dieses Problem, nur schon eine Stufe weiter ;-)
Grüße
Andreas
Hallo Andreas,
Sicher nicht? Die Lösung kam IMHO von Dir, glaube ich zumindest, das war das mit 700 smilies ersetzen und dem Array mit den pattern und replacements, wenn ich nicht irre.
Achso, das meinst Du:
$smilies = array (
':-)' => '<img src="freu.gif" alt=":-)" ...>',
';-)' => '<img src="zwinker.gif" alt=";-)" ...>',
':-(' => '<img src="traurig.gif" alt=":-(" ...>',
...
':-|' => '<img src="ernst.gif" alt=":-|" ...>'
);
$search = array_keys ($smilies);
$replaces = array_values ($smilies);
$text = str_replace ($search, $replaces, $text);
(aus dem Kopf, nicht aus dem Archiv)
Allerdings wollte ich eigentlich nicht direkt noch mal posten, schließlich gibt es ja auch eine Archivsuche. ;-)
Viele Grüße,
Christian
Hi,
ich möchte in meinem Forum Smileys einbauen. Ich realisiere es bisher per Javascript, indem man auf ein Smiley klickt und dann im textarea dann z.B. ':-)' eingefügt wird. Gibt es eine möglichkeit, jetzt bei der Ausgabe per PHP anstatt eines ':-)' dann ein Bild anzuzeigen?
Also alle vordefinierten Text-smileys sollen durch das Bild-smiley ersetzt werden.Thx
sky.
Hi,
du könntest in dem String die Smilies suchen und mit ein paar String-funktionen rumspielen, z.B. Substr_replace().
Hi Sky,
Du könnest per regulären Ausdrücken nach den Smilys suchen:
http://www.php.net/manual/de/function.preg-replace.php
und diese dann durch die Bilder ersetzen...
ich halte übrigens nicht sehr viel von diesen Bildchen,
ich mag die Textversion viel lieber :o)
Viele Grüße
annA