Ist String eine Zahl ?
Eddie
- php
Hallo allerseits,
wie kann ich in PHP ueberpruefen, ob mein String eine Zahl (integer) darstellt?
is_int bringt mir ja leider nix,
Konvertierung mit settype irgendwie auch nicht, denn dann erhalte ich als Ergebnis 0 falls der String ein Buchstabe war. Und ich kann dann nicht recht ueberpruefen, ob 0 ein korrekter Wert ist oder nicht...
Thanx, Eddie
Hallo
is_int bringt mir ja leider nix,
wieso? schau mal hier in den kommentaren:
http://php3.de/manual/de/function.is-int.php
Konvertierung mit settype irgendwie auch nicht, denn dann erhalte ich als Ergebnis 0 falls der String ein Buchstabe war. Und ich kann dann nicht recht ueberpruefen, ob 0 ein korrekter Wert ist oder nicht...
dann überprüfe doch vor der konvertierung mit is_numeric() ob es eine zahl ist...
Grüße
David
Hallo,
ich würde den String immer durch strval() durchjagen und dann fragen, welcher Wert herausgekommen ist. Man muss natürlich die Programmierung daraug abstimmen, dass z.B. nicht anschließend durch den Wert geteilt wird, ohne vorher auf 0 zu prüfen.
strval() gibt zumindest die Sicherheit, dass man keine SQL-Queries untergeschoben bekommt.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo RFZ,
ereg("[1]+$",$string);
müsste auch funktionieren, denk ich.
Klar, es wird funktionieren, aber man sollte von den ereg-Funktionen Abstand nehmen.
if (preg_match ('/[2]+$', $string)) {
// ist eine Zahl
}
Eventuell (nicht getestet) könnte auch das funktionieren:
if ((string)((int)$string)) == $string) {
// ist eine Zahl
}
Aber: das »erschlägt« natürlich nur ganzzahlige positive Zahlen.
Grüße,
Christian