Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] 0 am Anfang unterbinden

Einklappen

Neue Werbung 2019

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

  • [Erledigt] 0 am Anfang unterbinden

    Hallo,

    ich prüfe auf einen eingegebenen Wert größer als 4 und kleiner als 101.

    Dies funktioniert wunderbar, aber da ich immer alles ganz genau wissen will, habe ich einfach mal 06 oder 009 oder auch 099 eingegeben. Dies wird - irgendwie logisch - durchgelassen, ist aber ziemlich blöd.

    Ich konnte bisher keine richtige Lösung dafür finden. Als Workaround würde ich eine if-Prüfung machen und schauen ob die erste oder die erste und die zweite Ziffer der Eingabe eine 0 ist und abblocken oder diese entfernen. Aber gibt es da keine einfachere Lösung?

    Nach was sucht man denn da wenn man vor so einem Problem steht?

    Danke und einen schönen Sonntagabend.

  • #2
    preg_replace('=^0=',"",$zahl);

    Alternativ gibts auch noch ltrim-

    Wie wärs denn einfach mal ein bisschen mit Googlen?
    Da findet man bestimmt recht zügig was.

    Kommentar


    • #3
      ltrim, Integer-Casting, +0 rechnen …

      Zum Blocken reicht die Prüfung der ersten Stelle.
      [COLOR="#F5F5FF"]--[/COLOR]
      [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
      [COLOR="#F5F5FF"]
      --[/COLOR]

      Kommentar


      • #4
        Zitat von Mr-Trust Beitrag anzeigen
        Wie wärs denn einfach mal ein bisschen mit Googlen?
        Da findet man bestimmt recht zügig was.
        stimmt http://stackoverflow.com/questions/3...ve-first-zeros
        aber noobs wie mir hilft das nicht

        PHP-Code:
        <?php
        $var 
        0086;
        $var = (string)$var;
        $var preg_replace('=^0*=',"",$var);
        var_dump($var);
        $var ltrim($var'0');
        var_dump  ($var);
        $var = (int)$var;
        var_dump($var);
        ?>
        string(0) ""
        string(0) ""
        int(0)



        +0 rechnen hab ich auch nicht verstanden.

        Kommentar


        • #5
          Deklarier doch die Zahl als String.
          Wenn Zahlen aus Formularen kommen mit dem type text werden diese als String abgespeichert.
          Dann funktioniert oben genanntes auch.

          Und was mir gerade im Eifer des Gefechts nicht aufgefallen ist:
          Integer haben keine führende Null, deshalb ist dein Beispiel mit 0068 nicht korrekt.
          Führende Nullen gibt es nur bei Strings.

          Und bezüglich +0 addieren meint man einfach die konvertierung von string zu integer.
          Ganz einfach:

          $var = "68";
          $var = $var +0;

          Jetzt hab ich hier die halbe PHP Doku wiedergegeben...

          Kommentar


          • #6
            $var = 0068;
            Achtung mit schlechten Beispielen. Stichwort Oktalzahlen.

            meint man einfach die konvertierung von integer zu string.
            $var = $var +"0";
            Genau anders herum wird ein Schuh draus.
            [COLOR="#F5F5FF"]--[/COLOR]
            [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
            [COLOR="#F5F5FF"]
            --[/COLOR]

            Kommentar


            • #7
              Oh je zu langer Tag heut, hab ich mal wieder gut durcheinander gebracht ...

              Kommentar


              • #8
                mist ne,
                und was mach ich wenn grösser 7 dabei ist, oder muss dass der TE (erdkröte) selbst rausfinden.

                Kommentar


                • #9
                  Ich check nicht was du willst.
                  Gehts jetzt hier um dich oder erdkröte?

                  Kommentar


                  • #10
                    Vielen Dank für die Information. Der Diskussion kann ich nicht folgen.

                    Edit: Das mit int($var) hatte ich auch schon gelesen und ausprobiert, dies hatte aber nicht die gewünschte Wirkung. Werde das nochmal testen.

                    Kommentar


                    • #11
                      int ist auch keine funktion sondern eine Typ Definition die man so schreibt:
                      $var = (int) $var;

                      Kommentar


                      • #12
                        Zitat von Mr-Trust Beitrag anzeigen
                        int ist auch keine funktion sondern eine Typ Definition die man so schreibt:
                        $var = (int) $var;
                        Deine Typ Definition ist ein Type Casting. Und php kennt eine funktion dafür: [man]intval[/man]
                        [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                        Kommentar

                        Lädt...
                        X