Servus,
und was macht dann eine "Anna-Lena" oder ein "Böckmann"? ein "Çetin"?
Wie gesagt, weitere Sonderzeichen wie - oder Umlaute lassen sich ja noch problemlos mit aufnehmen. Wenn du nun wirklich alle auf der ganzen Welt in Namen vorkommende Zeichen berücksichtigen willst, wirst du mit "meiner" Methode natürlich scheitern.
Die Frage ist dann, macht es Sinn, alle diese Zeichen zuzulassen? (Für einen Benutzernamen würde es z.B. in der Regel keinen Sinn machen).
Wenn ja, (zur reinen Datenerfassung; Anschrift, etc.) fragt sich widerum, ob es überhaupt Sinn macht, den Namen auf Sonderzeichen zu prüfen (außer der üblichen Maskierung zur Verhinderung von Command Injections, versteht sich). Denn wenn jemand für seinen Namen wirklich Mist angeben will, reichen ihm auch die 26 Buchstaben des Alphabets ("Dfbdgfksdfgksdgjfsdgf" ist wahrscheinlich in keiner Sprache ein gültiger Name).
Um deine ursprüngliche Frage dennoch zu beantworten:
Zeichen mit Sonderfunktion maskiert man einfach mit einem "" (Backslash), wobei es auf den Kontext ankommt. Genaueres dazu findest du im PHP Manual zur <http://de.php.net/manual/en/reference.pcre.pattern.syntax.php@Pattern Syntax> (ich bin mal so frei und schieb dir gleich preg* unter ;).
Gruss
Patrick
sh:( fo:| ch:? rl:( br:> n4:( ie:% mo:) va:} de:> zu:) fl:| ss:| ls:[ js:|