ereg_replace
Bastian
- php
Hallo was habe ich vergessen? Es liegt an der geschlossenen Klammer (in $text steht "(" nicht "("). Nun gut das Problem.
Diese Funktioniert nicht, Script bricht ab:
$text = ereg_replace(":-(","<img border='0' src='".$cfg['graficPath']."/smilies/traurig.gif'>",$text);
Diese Funktioniert aber:
#$text = ereg_replace(":-)","<img border='0' src='".$cfg['graficPath']."/smilies/traurig.gif'>",$text);
Der einzigste Unterschied zwischen des beiden Funktionsaufrufen liegt zwischen der einmal geschlossenen und einmal offenen Klammer.
Danke für Hilfe
#$text = ereg_replace(":-)","<img border='0' src='".$cfg
sorry diese zeile funktioniert natürlich auch wenn sie nicht auskommentiert ist.
Moin!
Diese Funktioniert nicht, Script bricht ab:
$text = ereg_replace(":-(","<img border='0' src='".$cfg['graficPath']."/smilies/traurig.gif'>",$text);Diese Funktioniert aber:
#$text = ereg_replace(":-)","<img border='0' src='".$cfg['graficPath']."/smilies/traurig.gif'>",$text);
Reguläre Ausdrücke kennen Zeichen mit besonderer Bedeutung. Runde Klammern gehören dazu. Solche Zeichen muss man mit einem Backslash entschärfen, wenn man das eigentliche Zeichen meint.
Für deinen Zweck ist es aber vollkommen ausreichend, mit str_replace() zu arbeiten. Die Funktion ist schneller und tut genau, was du willst.
http://www.php.net/manual/en/function.str-replace.php
Wenn du unbedingt reguläre Ausdrücke verwenden willst, nimm lieber preg_*-Funktionen - die sind angeblich auch schneller als ereg, und außerdem binärsicher. Außerdem tun sie das gleiche - du hast also eigentlich nur Vorteile.
- Sven Rautenberg