Regular Expressions, nur Buchstaben verwenden inklusive Umlaute
Deutschsprachige Hilfen für Umlautprobleme sind im Internet immer selten gesät. Hier die Lösung des Problems, wenn man alle Zeichen aus einem String filtern will, welche in deutschen Wörtern nicht vorkommen dürfen:
$filteredword = utf8_encode(preg_replace('/[^a-zA-Z-äöüÄÖÜéàèÉÈ]/i','',$inputstring));
Erklärung:
$filteredword ist der gefilterte String ohne unerlaubte Zeichen
$inputstring ist der String, welcher noch unerlaubte Zeichen enthält
utf8_encode: wandelt den gefilterten String in UTF8 um. Dies ist notwendig, wenn man zum Beispiel später den String in einer MYSQL-Datenbank verwenden will
mit preg_replace werden alle Zeichen, welche dem Suchmuster entsprechen herausgefiltert. In unserem Fall sind das alle Zeichen, welche in den eckigen Klammern stehen.
[^a-zA-Z-äöüÄÖÜéàèÉÈ]: [^...] filtert alles raus ausser "..."
a-zA-Z: bedeutet alle Buchstaben
-: Bindestrich oder Minus sind in der deutschen Wörtern auch erlaubt
äöüÄÖÜéàèÉÈ: die spezial-Zeichen. Für uns Schweizer sinds eben noch ein paar mehr. Kann beliebig mit weiteren Zeichen ergänzt werden.
mit '/.../' wird die Reguläre Expression eingegrenzt
/i bedeutet: Gross und Kleinschreibung wird nicht berücksitigt; könnte man wahrscheinlich hier auch weglassen
Kommentar hinzufügen