22 Stimmen

PHP: Negative Zahlen prüfen und ctype_digit

Frage von Compi | 29.10.2012 um 09:24

Ich erhalte in einem PHP Skript Daten von einem Formular und möchte vor der Weiterverarbeitung überprüfen, ob es sich tatsächlich um eine Integer-Zahl handelt.

Dazu habe ich bislang die PHP Funkton ctype_digit() benutzt. Das hat auch alles sehr gut funktioniert, so lange die Zahlen positiv sind. Nun sollen aber auch negative Zahlen erlaubt sein.

Was kann ich machen um auch negative Zahlen validieren zu können?

AntwortenPositivNegativ
3Beste Antwort3 Stimmen

Mit ctype_digit() kannst du nur überprüfen, ob der übergebene String aus Ziffern (0 bis 9) besteht. Die Funktion prüft nicht, ob es sich um eine Integer-Zahl handelt, die möglicherweise auch negativ sein kann.

Allerdings kannst du mit regulären Ausdrücken und preg_match() arbeiten:

$teststr = "-1";

if (preg_match("/^-?[1-9][0-9]*$/", $teststr)) {
  echo 'String ist eine positive oder negative Zahl.';
}

Diese if-Bedingungen mit diesem regulären Ausdruck stellt sicher:

  • dass an der ersten Stelle des Strings ein Minuszeichen sein kann, aber nicht muss
  • dass deine Zahl mit einer Ziffer von 1 bis 9 beginnen muss, eine 0 an erster Stelle ist also nicht erlaubt
  • beliebig viele andere Ziffern von 0 bis 9 folgen können, aber nicht müssen

Damit identifizierst du also sowohl negative als auch positive Zahlen beliebiger Länge.
30.10.2012 um 16:20

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

PHP: Datei Download Skript

Tutorial | 0 Kommentare

MySQL: Integer Typen

Info | 0 Kommentare

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.