Problem mit str_replace der Smilies anzeigen soll

Folgendes, es funktioniert. Nur wenn man zb. ") macht, dann wandelt mir str_replace das auch als Smilie um, was es natürlich nicht soll. Wie kann ich das Problem umgehen? Danke für eure Hilfe.

PHP:
$out=str_replace (";)", " <img src=\"/gfx/smilies/wink.gif\"> ", $out);
 
Kann das Problem grade nicht nachvollziehen.
Funktioniert jedenfalls bei mir wie erwartet.

Veränderst du $out vor str_replace auf irgendeine weise?
 
So mache ich das. Sonst nichts. Komisch das er bei dir das nicht macht?!

PHP:
function smilies($out)
{
$out=str_replace ("X(", " <img src=\"/gfx/smilies/frown.gif\"> ", $out);
$out=str_replace (":)", " <img src=\"/gfx/smilies/smile.gif\"> ", $out);
$out=str_replace (":P", " <img src=\"/gfx/smilies/tongue.gif\"> ", $out);
$out=str_replace (";)", " <img src=\"/gfx/smilies/wink.gif\"> ", $out);
usw....
return $out;
}
 
Der von dir gezeigte Code (oben) wandelt nur ;) in ein zwinkerndes Smiley um.
Das ersetzen von ") wird durch etwas anderes bewirkt.

Ersetzt du vielleicht " durch ein ; irgendwie, irgendwo?

edit:
PHP:
$out=str_replace (":P", " <img src=\"/gfx/smilies/tongue.gif\"> ", $out);

Setz mal Leerzeichen um die Smilies. Wenn jemand schreibt: "Und es war:Peter" dann gibt das ein Smiley oder bei "ATX(Advanced Technology Extended)" kommt auch ein Smiley ohne das man es will.
 
Zuletzt bearbeitet:
EDIT:
Hab den Fehler doch gefunden. Bevor ich den Text speichere Prüfe ich den Kommentar noch mittels dieser Funktion. Hätte mir nicht gedacht das es an dem liegt. Und da dürfte das Problem htmlspecialchars sein. Aber wieso?

PHP:
function protect($string) {
         if(get_magic_quotes_gpc()) $string = stripslashes($string);
         $string = trim($string);
         $string = htmlspecialchars($string);
         $string = mysql_real_escape_string($string);
         return $string;
}
 
Zuletzt bearbeitet:
Frag dich selbst mal was htmlspecialchars aus einem " macht und anschließend was aus ") gemacht wird und dann hast die Antwort ;)

Tip: php.net (oben rechts ist die Suche)
 
Zurück