is_numeric() ist immer false - ????

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • is_numeric() ist immer false - ????

    Ich versuche zu überprüfen, ob zeitmix eine zahl ist. Leider klappt das nicht.
    PHP-Code:

    Array
    (
        [
    0] =>  4.4.2008
        
    [1] =>  Neues Buch
        
    [2] => 
    )

    if(
    is_numeric($zeitmix[0]))
        {
    ...
        }else{ 
    var_drump($zeitmix); ist false.

    Warum?

  • #2
    Tja, seit wann sind Punkte (.) Dezimalziffern?!

    Kommentar


    • #3
      Original geschrieben von DerSchonWieder
      Tja, seit wann sind Punkte (.) Dezimalziffern?!


      is_numeric — Prüft, ob eine Variable eine Zahl oder ein numerischer String ist. Verstehe ich da etwas falsch?

      Die Beispiele sagen das:
      PHP-Code:
      is_numeric('0123'); // true
      is_numeric(0.123); // true
      is_numeric('0.123'); // true
      is_numeric(123); // true
      is_numeric('123'); // true
      is_numeric('foo'); // false 
      Tatsächlich geht es ohne die Punkte. Doch wie kann ich bei der Überprüfung die Punkte unberücksichtigt lassen?
      Zuletzt geändert von janein; 04.04.2008, 17:09.

      Kommentar


      • #4
        Schon, aber seit wann hat eine Zahl mehrere Dezimaltrennzeichen? Daher kann 4.4.2008 nicht true ergeben.

        Kommentar


        • #5
          Original geschrieben von asp2php
          Schon, aber seit wann hat eine Zahl mehrere Dezimaltrennzeichen? Daher kann 4.4.2008 nicht true ergeben.
          Ja, ist mir auch gerade klar geworden

          Wie kann man aber einen String von 2.4.2003 unterscheiden?
          Zuletzt geändert von janein; 04.04.2008, 17:25.

          Kommentar


          • #6
            Steht da denn immer ein Datum? Oder auch irgendetwas anderes, nummerisches?
            signed oder unsigned... das ist hier die Frage

            Kommentar


            • #7
              Wenn du das Format kennst, kannst du es ja mit regulären Ausdrücken prüfen...

              Kommentar


              • #8
                Original geschrieben von case
                Steht da denn immer ein Datum? Oder auch irgendetwas anderes, nummerisches?
                Mal steht da dieses Datum, mal ein reiner string. Das sollte unterschieden werden.

                Kommentar


                • #9
                  Sehe ich das richtig, dass du jetzt drei Thread's geöffnet hast für zusammenhängende Probleme?!

                  Wie bereits erwähnt kannst du, wenn das Format immer gleich ist, das Problem anhand von regulären Ausdrücken prüfen. In einem von dem beiden anderen Threads wurde dir zu explode() geraten. Wenn du den String teilst dann kannst du auch jedes Datumssegment einzeln auf is_numeric() prüfen.

                  mfg
                  bugbuster
                  tutorial: peterkropff.de schattenbaum.de tut.php-quake.net
                  documentation: php.net mysql.com framework.zend.com

                  Die Nachtwache!

                  Kommentar


                  • #10
                    Original geschrieben von janein
                    Wie kann man aber einen String von 2.4.2003 unterscheiden?
                    Hä? 2.4.2003 ist doch ein String...
                    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                    var_dump(), print_r(), debug_backtrace und echo.
                    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                    Kommentar


                    • #11
                      eben und warum speicherst du eine zahl nicht einfach als zahl??
                      alles andere ist doch nur formatierungs schnickschnack dann musste
                      hinterher auch nicht unterscheiden

                      Kommentar


                      • #12
                        is_numeric( str_replace(".", "", "22.12.2008") ); -> true

                        nicht schön, aber selten
                        Killerspiele sollten in der Größenordnung von Kinder********************grafie eingeordnet werden.(G. Beckstein)
                        - ...und solche Behauptungen in "falsches Resourcenmanagement"

                        Kommentar


                        • #13
                          sauber wäre es mit preg_match(). aber das wurde ja bereits erwähnt...

                          Kommentar

                          Lädt...
                          X