Reguläre Ausdrücke und setlocale()
Michel Gelin
- php
0 Michel Gelin0 dedlfix
Hallo zusammen,
ich arbeite an nem Formmailer. Dieser soll anhand Regulärer Ausdrücke (RA) die Felder validieren. Leider bin ich der RA nicht wirklich mächtig: Mir machen die Umlaute Mühe.
Ich habe folgenden Code:
setlocale(LC_ALL, 'de_DE');
[...]
$pruefung = array(
'email' => '/^[\w.+-]{2,}\@[\w.-]{2,}\.[a-z]{2,6}$/',
'betreff' => '/^[[:print:]]{3,}$/',
'mitteilung' => '/^[[:print:][:space:]]{10,}$/',
'namevorname' => '/^[[:print:][:space:]]{3,}$/',
'telefon' => '/^[[:print:][:space:]]{0,}$/',
)
[...]
if(isset($pruefung[$parameter])) {
if(!preg_match($pruefung[$parameter], $wert)){
[usw.]
Nun habe ich aber bemerkt, dass [:print:] trotz setlocale die Umlaute nicht zu beachten scheint. Wie kann ich nun die Umlaute und auch das ß integrieren? Macht es überhaupt Sinn mit [:print:] zu arbeiten?
Leider habe ich hier und auch auf google noch keine befriedigende Antwort auf das Problem gefunden :-(
Lieber Gruss,
Michel
Hallo again!
hm.... frage ich was was schon tausendmal gefragt wurde, oder hat keiner nen guten Lösungsansatz?
komme einfach nicht weiter mit den zeilen...
Gruss,
Michel
echo $begrüßung;
Die Antwort auf dein Problem kenne ich nicht, aber das sind die Fragen, die ich mir zunächst stellen würde, wenn ich es zu lösen hätte:
setlocale(LC_ALL, 'de_DE');
Nun habe ich aber bemerkt, dass [:print:] trotz setlocale die Umlaute nicht zu beachten scheint.
War das Ausführen von setlocale() von Erfolg gekrönt? Das Handbuch sagt, wie setlocale() im Gut- und Fehlerfall reagiert.
Wie kann ich nun die Umlaute und auch das ß integrieren?
Haben die Handbuchseiten zu den Regular Expression Functions (Perl-Compatible) erwähnt, dass setlocales einen Einfluss hat?
Macht es überhaupt Sinn mit [:print:] zu arbeiten?
Funktionieren die Posix-Character-Classes mit den Perl-RegExps? Was ergeben Versuche, diese bei einfacheren Fällen zu verwenden?
echo "$verabschiedung $name";