Hi,
ich bin heute zufällig auf die Ctype Funktionen gestossen. Nicht schlecht dachte ich und wundernswert, warum bei den typischen Fragen zu Formularüberprüfungen selten, ich hatte es noch nie gesehen, empfohlen wurde.
Nach ein wenig Nachforschung, fand ich den Hauptgrund darin, weil zb. Ctype Funktionen ctype_digit() nur mit Strings zurecht kommt:
http://forum.de.selfhtml.org/archiv/2008/4/t170491/#m1114558
Na gut, dachte ich wär ja auch zu schön gewesen, was soll ich mich also damit rumärgern, bleibe ich doch gleich bei is_int oder is_numeric, auch wenn ich da einiges anpassen muss, den das problem ist ja:
1. Kommt eine (scheinbare) Zahl an oder ist es doch ein String, der aussieht wie eine Zahl? Was ein Problem bei is_int sein könnte
2. 2.455 oder 2,44 sind auch Zahlen, ok kein integer aber somit geht is_numeric schon mal nicht, wenn ich nur Integer akzeptieren will.
Bei ctype_digit müsste ich auch erst sicherheitshalber in String konvertieren, damit die Funktion fehlerfrei arbeitet. Und auch dachte ich, wird ja vielleicht noch einen Grund haben, warum Ctype Funktionen so selten erwähnt werden, da las ich das und vor allen der Geschwindigkeitsvorteil war interessant:
http://forum.de.selfhtml.org/archiv/2005/8/t113304/#m719370
Also auch noch schneller als die anderen, hmmm. Deshalb jetzt mal eine konkrete Frage:
Es dürfe Zahlen von 0-unendlich eingegeben werden. Allerdings keine Floatwerte oder sonst irgendwelche nichtnumerischen Zeichen. Die Werte können intern erzeugt werden, aber auch von einem Formular kommen.
Somit:
1243 = true
32329 = true
0 = true
348598584305984084300458045983 = true
454,254 = false
113213.34 = false
32j3h8trt = false
1232+342 = false
2124%444 = false
1 = true
Welche Funktion(unter Berücksichtigung der notwendigen Anpasssung des Werte an die Funktion)sollte ich nun, und warum, dafür nutzen?
Oder doch besser $pattern = '/\d*/';?
Peter
ps. Kann mal Jemand sagen warum hier oft noch unzählige Zeilenumbrüche vorhanden sin, oder bzw, ist es egal werden die beim Post automatisch gelöscht? Ach ich probiers mal aus, wenns nicht gelöscht wird, müsste jetzt ne ganze Menge LEERE kommen.