camacho: Redaktionssystem ohne Datenbank

Beitrag lesen

Hallo Christian,

Du verwendest eregi_replace - das erwartet einen regulären Ausdruck und in regulären Audrücken haben Klammern eine besondere Bedeutung.

... und das ist ja das Problem gewesen! Wenn ich Deine Lösung wie folgt benutze:

function mask ($text) {
   $replacements = array (
   '#' => 'No.',
   '%' => 'Percent'
   );
   $from = array_keys ($replacements);
   $after = array_values ($replacements);

return str_replace ($from, $after, $text);
   }

... brauche ich die Klammern nicht mehr ersetzen oder maskieren und der Script funktioniert soweit einwandtfrei (zumindest ist mir noch nichts aufgefallen, was nicht in Ordnung wäre). Die Zeichen '#' und '%' brauche ich nicht einmal demaskieren, da sie im Text eh' schöner aussehen wenn sie ausgeschrieben sind.
Übrigens: welche "besondere Bedeutung"?

Also meine Lektion ist gelernt, ab jetzt sage ich nur noch "vade retro, eregi_replace!"

Die ereg-Funktionen sollte man nicht verwenden, da einmal langsam und zum zweiten nicht binärsicher.

Gibt es eigentlich überhaupt Situationen, in denen es trotzdem sinnvoll wäre eregi_replace zu benutzen? Wozu ist es erfunden worden?

//openbrotsch weil dieses string unwahrscheinlich auftauchen wird und es spass macht
Trotzdem solltest Du lieber so maskieren, dass das maskierte Zeichen _nie_ in der Zeichenkette auftreten kann.

Ja das verstehe ich schon, aber es ist zum Beispiel denkbar, dass jemand sich vertippt und z.B. "Was für'n schönen Tag!oma hat Kuchen gebacken" und das wird "Was für'n schönen Tag(ma hat Kuchen gebacken" ausgelesen. Dagegen ist es unwahrscheinlicher "openbrotsch" aus Versehen zu schreiben. Oder übersehe da ich was?

Klar. Folgender Thread ist vielleicht interessant: </archiv/2002/12/32932/> (auch wenn er gegen Ende etwas abdriftet...)

Werde ich mich reinziehen...

Vielen Dank für alles: ich wünsche Dir ein wunderschönes Wochenende!

Nicola