Eddie: Ist String eine Zahl ?

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

  1. 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

    --

    "Nobody will ever need more than 640k RAM!"
    1981 Bill Gates
    1. 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

      --
      Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
  2. Hallo allerseits,
    wie kann ich in PHP ueberpruefen, ob mein String eine Zahl (integer) darstellt?

    Hi,
    ereg("[1]+$",$string);
    müsste auch funktionieren, denk ich.

    cu RFZ

    Thanx, Eddie


    1. 0-9 ↩︎

    1. 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

      --
      Ich wünsche allen frohe Weihnachten!
      Ich bitte darum, dass ein Themenbereich (BARRIEREFREIHEIT) eingerichtet wird.

      1. 0-9 ↩︎

      2. 0-9 ↩︎