Theo: Suche PHP funktion

hi leute,

gibt es eine php funktion die einen string checkt ob es sich nur um zahlen handelt und dann true oder false ausgibt...?

mfg theo

  1. Hallo,

    gibt es eine php funktion die einen string checkt ob es sich nur um zahlen handelt und dann true oder false ausgibt...?

    ja: is_nummeric()

    Ein Blick ins Manual lohn.

    Gruß aus Berlin!
    eddi

    1. Danke!

      mfg Theo

  2. Hello,

    gibt es eine php funktion die einen string checkt ob es sich nur um zahlen handelt und dann true oder false ausgibt...?

    Die Funktion is_numeric() testet einen String, ob er als numerische Größe interpretiert werden kann.
    Wenn Du testen willst, ob nur Ziffernzeichen enthalten sind, musst Du Dir selber etwas bauen.

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

    1. gudn tach!

      Die Funktion is_numeric() testet einen String, ob er als numerische Größe interpretiert werden kann.
      Wenn Du testen willst, ob nur Ziffernzeichen enthalten sind, musst Du Dir selber etwas bauen.

      noe: ctype_digit

      prost
      seth

      1. Hello,

        Wenn Du testen willst, ob nur Ziffernzeichen enthalten sind, musst Du Dir selber etwas bauen.

        noe: ctype_digit

        *huch* Die kannte ich ja noch gar nicht.
        Sind "enabled experimental" auf meinem Museum.

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau

    2. Hallo Tom,

      Die Funktion is_numeric() testet einen String, ob er als numerische Größe interpretiert werden kann.
      Wenn Du testen willst, ob nur Ziffernzeichen enthalten sind, musst Du Dir selber etwas bauen.

      das ist so nicht korrekt. Die Funktion prüft, ob der Übergebene Parameter als Zahl (integer, float) zu werten ist. Darüberhinaus wird jeder Parameter, der andere Zeichen als 0 bis 9 und einen "." enthält, als nicht nummerisch gewertet. Eigene Anstrengungen sind, wie so oft bei PHP, nicht erforderlich.

      Gruß aus Berlin!
      eddi

      1. Hi eddi,

        Darüberhinaus wird jeder Parameter, der andere Zeichen als 0 bis 9 und einen "." enthält, als nicht nummerisch gewertet.

        das ist so nicht korrekt. Beispielsweise liefert is_numeric("-1.3275923E+03") true und widerlegt damit deine Aussage.

        *scnr*
         Martin

        --
        Wenn du beim Kochen etwas heißes Wasser übrig hast, friere es ein.
        Heißes Wasser kann man immer gebrauchen.
      2. Hallo eddi,

        das ist so nicht korrekt. Die Funktion prüft, ob der Übergebene Parameter als Zahl (integer, float) zu werten ist. Darüberhinaus wird jeder Parameter, der andere Zeichen als 0 bis 9 und einen "." enthält, als nicht nummerisch gewertet. Eigene Anstrengungen sind, wie so oft bei PHP, nicht erforderlich.

        Ach, ja? Dann guck mal, was

        $foo = '3e7';  
        $bar = '0xF89C';  
        if (is_numeric($foo)) {  
            echo "BUH!";  
        }  
        if (is_numeric($bar)) {  
            echo "muhaha!";  
        }
        

        ausgibt.

        Schöne Grüße,

        Johannes

        1. Hallo Johannes,

          *ups* ^^
          Danke!

          Gruß aus Berlin!
          eddi

          1. Hello,

            *ups* ^^
            Danke!

            Kann ja jedem passieren :-)

            Für den Test auf "nur Ziffern" kann man ja eine Kanone nehmen
            http://de2.php.net/manual/en/function.preg-match.php

            oder man fragt (if abs(inval($zahl))==$zahl))
            das hat aber seine Grenze bei einer Länge von "zehneinhalb" oder "achtzehneinhalb Ziffern"

            sonst bleibe eben nur die gute alte Forschleife, mit der man jedes Zeichen auf 0<=$zeichen<=9 prüft...

            Fällt Euch sonst noch as ein?

            Vielleicht könnte man was über das Bitmuster machen... Bei Groß- Kleinschreibung im ASCII-Zeichensatz geht das ja auch zufällig (oder absichtlich?).

            Harzliche Grüße vom Berg
            http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau

  3. Moin!

    gibt es eine php funktion die einen string checkt ob es sich nur um zahlen handelt und dann true oder false ausgibt...?

    Ich kann dir folgendes Anbieten:

    • Multipliziere ihn mit 1. Kommt 0 raus, dann enthielt der String nichts, was als Zahl verwertbar war oder 0. Kannst ja original und Teststring miteinander vergleichen.
      <?php
        if(''.$_GET['zahl'] != ''.($_GET['zahl']*1)) {
          echo "Blök";
        } else {
          echo "Fein! Du hast eine Zahl eingegeben.";
        }
      ?>

    Auch hier kannst Du hinterher durch Vergleich feststellen, ob der übergebene Wert Deinen Erwartungen entsprach.

    • Typumwandlung
       $int=(int)$str;
       $float=(float)$str;

    Das "Problem" ist, dass "3 Monate" tatsächlich zu 3 wird, wenn man es multipliziert:
    <?php echo "3 Monate"*1; ?>

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development