ereg_replace() funzt ned

Wolfsbein

Erfahrenes Mitglied
Hallo
folgendes Problem: ich habe ein Textfeld, dass eingelesen wird, um Zeichenfolgen durch Bilder, also Smilies zu ersetzen.
Code:
    // das haut hin
    $UBBsmile = ":)";
    $smile = "<img src=\"images/smile.gif\">";
    $text = ereg_replace($UBBsmile, $smile, $text);

    // das hingegen nicht
    $UBBfrown = ":(";
    $frown = "<img src=\"images/frown.gif\">";
    $text = ereg_replace($UBBfrown, $frown, $text);
Ich erhalte diese Fehlermeldung: Warning: REG_EPAREN: in c:\apach...
Was heißt das und warum erhalte ich überhaupt den Fehler?
 
Wieso interessant? Ist doch egal, wo die Datei liegt und wie sie heißt. Stell dir einfach vor der Pfad ist c:\apache\htdocs\etwas\evtlnochetwas\oderso\datei.php
 
sry ich hatte was überlesen.

mache das ganze mit str_replace, dann gehts.

str_replace: Ersetzt alle Vorkommen eines Strings in einem anderen Stringgs.

ereg_replace ist nur für einen regulären ausdruck..
 
Zuletzt bearbeitet:
das hat nix mit deinen :) und :( zu tun, sondern mit ereg_replace und str_replace.

schau doch mal auf php.net und suche nach den beiden funktionen, da ist der unterschied geschildert.
 
Das problem ist ein ganz einfaches...

ereg_replace erwartet einen regulären ausdruck (regexp), str_replace einen string.

der unterschied zwischen einer regexp und einem string ist, das in der regexp noch anweisungen enthalten sind. So kann man zum beispiel eine liste möglicher zeichen angeben, indem man diese in klammern schreibt.

der fehler ist also, das ereg_replace eine liste erwartet, du ihm aber keine gibst.

wenn du die klammern einfach mir einem escape zeichen (\ oder auch Backslash) versiehst, müsste es klappen.

Beispiel: ":-\)" oder ":-\("

es ist auch hilfreich den expressions ein trennzeichen voranzustellen
"~:-\)~"

wer sich die ereg_replace funktion mal genau ansieht, wird feststellen, dass man anstatt strings auch arrays übergeben kann, was unter umständen eine ganze menge schreibarbeit spart (wenn man viel zu ersetzen hat)

Ist eben wie immer... PHP-Doku schnappen und wer lesen kann, ist klar im Vorteil ;-)

Happy hackin',
ya Storm
 
Zurück