Ich möchte nur die Methode kennen, um eine PHP-Variable für beliebige Nicht-Nummern zu überprüfen und ob sie auch Leerzeichen zwischen Zeichen erkennt. Ich muss sicherstellen, dass nichts Ungewöhnliches in meine Formularfelder gelangt. Vielen Dank im Voraus.
Wenn Sie meinen, dass ein Wert nur Zahlen enthalten soll, verwenden Sie ctype_digit()
.
Sie können is_numeric()
verwenden:
Dadurch wird überprüft, ob der Wert numerisch ist. Daher kann er etwas anderes als Ziffern enthalten:
%Vor%Dies stellt jedoch sicher, dass der Wert eine gültige Zahl ist.
Dies gibt true
zurück, wenn in der Zeichenkette Nicht-Nummern vorhanden sind. Es erkennt Buchstaben, Leerzeichen, Tabulatoren, neue Zeilen, was auch immer keine Zahlen sind.
Dies überprüft, ob der Eingabewert numerisch ist oder nicht. Hoffe das hilft
%Vor%PHP hat die Funktion is_numeric () , die genau das ist, wonach Sie suchen.
Angenommen, Sie möchten nur (und nur) gültige Ganzzahlen, und Sie möchten nicht, dass Benutzer mit Ihren Daten und Ihrer Datenbank mit hexadecimal
oder binary
oder einer anderen Form von Zahlen in Konflikt geraten, dann können Sie immer diese Methode verwenden:
Der Trick ist einfach. Er wandelt die Variable vom Typ string in Integer-Typ um und wandelt sie dann in string zurück. Super schnell, super einfach.
Um zu testen, habe ich einen Test vorbereitet:
%Vor% Der einzige Platz, an dem diese Methode zu kurz kommt, sind negative Zahlen. Sie müssen das also überprüfen (verwenden Sie ((string) (int) $stringVariable) === $stringVariable && $stringVariable[0] !== "-"
).
Nun dachte ich, dass die Methode preg_match
die beste ist. Aber in jedem Projekt, das sich mit Benutzern beschäftigt, ist Geschwindigkeit ein wichtiger Faktor. Also bereitete ich einen Benchmark-Test vor, der 500.000 Mal über dem Test lief und die Ergebnisse waren erstaunlich:
Meine eigene erfundene Methode hat nur genommen:
6.4700090885162
Sekunden im Vergleich zu preg_match
, das dauerte:
77.020107984543
Sekunden, um diesen Test zu beenden!