Discussion:
preg_replace und Umlaute
(zu alt für eine Antwort)
Frank Heidig
2006-10-23 14:24:44 UTC
Permalink
kleiner Fehler...muss lauten:
$str = preg_replace("/[^a-z üöä]/i", "", $str);

aber irgendwie werden die Umlaute nicht genommen... :-(
Hallo,
ich habe ein kleines Problem mit preg_replace und Umlaute und
Umlauten.Aus einem String möchte ich alles ausser Buchstaben und Umlaute
entfernen. Leider klappt dies mit den umlauten nicht :-(
$str = preg_replace("/[^a-z üöä]/i", "ue", $str);
die Umlaute fallen mit raus.
Habe dann mal versucht mit
$str = preg_replace("/ä/", "ue", $str);
die Umlaute auszutauschen. Passiert aber überhaupt nix... :-(
Kann mir vielleicht jemand weiter helfen...
viele Grüße
Frank
Ulf Kadner
2006-10-23 20:42:10 UTC
Permalink
Post by Frank Heidig
$str = preg_replace("/[^a-z üöä]/i", "", $str);
aber irgendwie werden die Umlaute nicht genommen... :-(
Kann ich nicht bestätigen! Funktioniert wie gewollt.

$str = 'abö.ü-! cdä.e12fg.';
echo preg_replace("/[^a-z üöä]/i", "", $str);

Output ist 'aböü cdäefg' also alles OK

MfG, Ulf
Jörg Singendonk
2006-10-24 07:56:43 UTC
Permalink
$str = preg_replace("/ä/", "ue", $str);
die Umlaute auszutauschen. Passiert aber überhaupt nix... :-(
Sind die Zeichensätze deines Editors und des eingehenden Requests
kompatibel?

geht $str = preg_replace("/ä/u", "ue", $str)?

Also einmal im PHP Manual nach locale suchen und alle Einstellungen
diesbezüglich prüfen.

Jörg
Frank Heidig
2006-10-26 10:06:11 UTC
Permalink
Hallo,

erstmal danke für Eure Antworten!
Post by Jörg Singendonk
geht $str = preg_replace("/ä/u", "ue", $str)?
da passiert folgendes, das wenn im String ein Umlaut ist, alle anderen
Zeichen auch nicht mehr raus genommen werden (Zahlen und so bleiben also
im String). werde mir das mit locale nochmal in Ruhe anschauen.

Viele Grüße
Frank
Post by Jörg Singendonk
$str = preg_replace("/ä/", "ue", $str);
die Umlaute auszutauschen. Passiert aber überhaupt nix... :-(
Sind die Zeichensätze deines Editors und des eingehenden Requests
kompatibel?
geht $str = preg_replace("/ä/u", "ue", $str)?
Also einmal im PHP Manual nach locale suchen und alle Einstellungen
diesbezüglich prüfen.
Jörg
Loading...