Hallo,
ich schreibe gerade ein PHP-Skript das ein HTML-Formular auswertet. Um Fehler zu vermeiden müssen einige Strings auf deren Inhalt geprüft werden. Beispielsweise darf einer der Strings nur kleine Buchstaben enthalten, ein anderer keine Sonderzeichen etc.
Folgende Funktion habe ich da z.B.:
function string_check_if_small_letters($string) {
$result=FALSE;
for($cnt=0;; $cnt++) {
$sign=$string{$cnt}; $utfCode=ord($sign);
if($sign==FALSE) {
if($cnt>0) $result=TRUE;
break; }
if($utfCode<97 || $utfCode>122) break; }
if($result==TRUE) return $cnt;
else return 0; }
Alles anzeigen
Funktioniert auch alles. Allerdings frage ich mich, ob die von mir verwendete Funktion ord(); hier angebracht ist?
ord(); ist ja ursprünglich und auch laut PHP-Handbuch für ASCII-Zeichen gedacht. Solange die Funktion mit normalen Zeichen (32-127) zu tun hat sind die Codierungen von ASCII und UTF-8 ja identisch. Doch wie sieht es mit speziellen Zeichen, wie z.B. dem Eurozeichen aus? Könnte es da Probleme geben? Gibt es eventuell sogar eine ord()-Alternative für UTF-8?