preg_replace - nichts wird ersetzt

ava99

Erfahrenes Mitglied
Hallo Gemeinschaft !

Habe mich mal daran gemach, dass ä,ö,ü,ß durch html - Zeichensatz ersetzen werden soll, so dass es zu einem besser Quellecode wird.

Habe ein Eingabeformular in welches Umlaute eingetragen werden können, dieses Formular wird in einer Datenbank abgespeichert. Nun mein bestreben ist keine ö,ä,ü,usw ein zutragen sondern den Html-Quellecode.

So wird er aus dem Formularfeld ausgelesen :
Code:
$objekt_text=$_POST['text'];

wollte dann den Code durch ein Array laufen lassen der auf die Umlaute prüft:

Code:
 $pattern[0] = "/ö/i";
 $pattern[1] = "/ä/i";
 $replace[0] = "ö";
 $replace[1] = "ä";
 $objekt_text_4 = preg_replace($pattern, $replace, $_POST['text']);

Nur leider funktioniert das ganze nicht so :(.
Hat einer Idee waran es liegen könnte? :confused:

Vielen Dank für eure Hilfe schon im Voraus

Grüße

Ava99
 
Du kannst auch einfach die htmlentities()-Funktion verwenden.
Wenn die Zeichen übrigens im verwendeten Zeichensatz vorkommen, musst du sie nicht durch Zeichenreferenzen ersetzen, da sie auch direkt verwendet werden können.
 
Danke für deine schnelle Anwort.
Hättest du auch geraede ein kleines beispiel parat wie das machen könnte ?
 
Habe es gerade mal ausprobiert

Code:
echo htmlentities($objekt_text);

Wenn ich in das Formular : Ausführung eintippel kommt folgende Ausgabe
Code:
ausführung
 
Du musst noch die zu verwendende Zeichenkodierung angeben (dritter Parameter), was in deinem Fall vermutlich UTF-8 ist. Aber bei UTF-8 ist es eigentlich sinnlos, andere Zeichen außer den HTML-Metazeichen zu ersetzen. (Siehe Umlaute ersetzten)
 
Zurück