![]() |
PHP zeichenketten filter mit preg_replace
Ich habe in meinem php-Mailscript festgestellt, dass bei den Namen auch die Umlaute verloren gehen. Ich denke, das wird hier an dieser Stelle passieren:
Code:
Was müsste cih dort ändern, damit die Umlaute und Satzzeichen erhalten bleiben? Ich kenne mich mir Regulärenausdrücken leider nicht aus.
$name = preg_replace('#[^a-zA-Z0-9 ]#i', '', $_POST['yourname'])
|
Re: PHP zeichenketten filter mit preg_replace
Wenn du Umlaute und _alle_ Satzzeichen erhalten willst, geht das ganz schnell in die Unicode-Zeichenklassen. Beispiel: [^\w\p{P}] sollte deinen Ansprüchen genügen, wenn die Engine die \p{}-Syntax unterstützt - ansonsten musst du an Stelle des \p{P} alle Satzzeichen auflisten.
![]() |
Re: PHP zeichenketten filter mit preg_replace
Zitat:
"Alles, was nicht Kleinbuchstabe a-z, Großbuchstabe A-Z, eine Ziffer 0-9 oder ein Leerzeichen wird, fliegt raus" Die Minimalversion einer Erweiterung sähe jetzt so aus, dass Du diese Zeichenmenge um die Umlaute und ggf. das scharfe S erweiterst:
Code:
Es gibt noch das Universal-Zeichen \w, das stellvertretend für alle sog. "word-character" steht, also "alle" Buchstaben. Dann muss man allerdings darauf achten, PHP die korrekte Ländereinstellung zu verpassen:
$name = preg_replace('#[^a-zA-Z0-9[b][u]äöüÄÖÜß[/u][/b] ]#i', '', $_POST['yourname'])
A "word" character is any letter or digit or the underscore character, that is, any character which can be part of a Perl "word". The definition of letters and digits is controlled by PCRE's character tables, and may vary if locale-specific matching is taking place. For example, in the "fr" (French) locale, some character codes greater than 128 are used for accented letters, and these are matched by \w. Der Ausdruck wäre dann mutmaßlich (ungetestet) wie folgt (oder ähnlich, da ungetestet):
Code:
$name = preg_replace('#[^\w ]#i', '', $_POST['yourname'])
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz