Ankündigung

Einklappen
Keine Ankündigung bisher.

preg_match Zeichenlänge wie 2 ODER 4?

Einklappen

Neue Werbung 2019

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

  • #31
    wobei ich würds so machen:
    PHP-Code:
    if(ctype_digit($string)){
    $len strlen($string);

    if((
    $len == 2) or ($len == 4)){
     echo 
    'Es handelt sich um eine Zahl, die 2 bzw. 4 Zeichen lang ist';
    }else{
     echo 
    'Es handelt sich um eine Zahl, die kein 2 bzw. 4 Zeichen lang ist';
    }


    }else{
        echo 
    'Es handelt sich nicht um eine Zahl';

    Irgendwer(in diesem Forum ) hat mir Mal den Tipp gegeben das preg_match
    zu groß für sowas ist und man die ctype Filter nutzen soll.

    LG Sonic

    EDIT: Jo eagle hast recht. Naja aber der Ansatz sollte klar sein

    Kommentar


    • #32
      dann aber richtig ..
      if(($len == 2) or ($len ==4)){
      Zitat von Sonic Beitrag anzeigen
      wobei ich würds so machen:
      PHP-Code:
      if(ctype_digit($string)){
      $len strlen($string);

      if((
      $len == 2) or ($len ==2)){
       echo 
      'Es handelt sich um eine Zahl, die 2 bzw. 4 Zeichen lang ist';
      }else{
       echo 
      'Es handelt sich um eine Zahl, die kein 2 bzw. 4 Zeichen lang ist';
      }


      }else{
          echo 
      'Es handelt sich nicht um eine Zahl';

      Irgendwer(in diesem Forum ) hat mir Mal den Tipp gegeben das preg_match
      zu groß für sowas ist und man die ctype Filter nutzen soll.

      LG Sonic
      "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

      Kommentar


      • #33
        String-casting nicht vergessen!
        ctype_digit() will treat all passed integers below 256 as character-codes. It returns true for 48 through 57 (ASCII '0'-'9') and false for the rest.

        ctype_digit(5) -> false
        ctype_digit(4 -> true
        ctype_digit(255) -> false
        ctype_digit(256) -> true

        (Note: the PHP type must be an int; if you pass strings it works as expected)
        Da ist ein Ausdruck dann doch kürzer..
        PHP-Code:
        '/^(\d\d){1,2}$/' 
        [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


        • #34
          Hast gewonnen
          [IMG]https://g.twimg.com/twitter-bird-16x16.png[/IMG][URL="https://twitter.com/fschmengler"]@fschmengler[/URL] - [IMG]https://i.stack.imgur.com/qh235.png[/IMG][URL="https://stackoverflow.com/users/664108/fschmengler"]@fschmengler[/URL] - [IMG]http://i.imgur.com/ZEqflLv.png[/IMG] [URL="https://github.com/schmengler/"]@schmengler[/URL]
          [URL="http://www.schmengler-se.de/"]PHP Blog[/URL] - [URL="http://www.schmengler-se.de/magento-entwicklung/"]Magento Entwicklung[/URL] - [URL="http://www.css3d.net/"]CSS Ribbon Generator[/URL]

          Kommentar


          • #35
            (Note: the PHP type must be an int; if you pass strings it works as expected)
            Wenn ich folgendes machen funktioniert es. Hat es irgendwelche nachteile es so zu machen oder nicht?
            PHP-Code:
            <?php
            error_reporting
            (E_ALL);
            $var 5;
            $case1 =  (int)$var//sollte nicht gehen
            $case2 = (string)$var//sollte gehen

            if(ctype_digit($case1)){
                echo 
            'Es ergibt true: Int 5';
            }else{
                echo 
            'Es ergibt false: Int 5';
            }

            if(
            ctype_digit($case2)){
                echo 
            'Es ergibt true: Var 5';
            }else{
                echo 
            'Es ergibt false: Var 5';
            }
                

            ?>

            Ausgabe:  Es ergibt false: Int 5   Es ergibt true: Var 5
            Error Reporting ist E_All und es kommt kein Fehler.

            LG Sony

            Kommentar


            • #36
              Ich verstehe dich so dass du ctype_digit((string)$var) benutzen willst, damit ergeben sich keine Nachteile, nein.
              [IMG]https://g.twimg.com/twitter-bird-16x16.png[/IMG][URL="https://twitter.com/fschmengler"]@fschmengler[/URL] - [IMG]https://i.stack.imgur.com/qh235.png[/IMG][URL="https://stackoverflow.com/users/664108/fschmengler"]@fschmengler[/URL] - [IMG]http://i.imgur.com/ZEqflLv.png[/IMG] [URL="https://github.com/schmengler/"]@schmengler[/URL]
              [URL="http://www.schmengler-se.de/"]PHP Blog[/URL] - [URL="http://www.schmengler-se.de/magento-entwicklung/"]Magento Entwicklung[/URL] - [URL="http://www.css3d.net/"]CSS Ribbon Generator[/URL]

              Kommentar


              • #37
                Ok, dann passt das. Danke

                Aber die ctype Funktionene sind aber schon von der Performance her besser oder?

                LG Sonic

                Kommentar


                • #38
                  Bei einer Abfrage fängt PHP ohnehin nicht an zu weinen. Über Performance solltest du dir eher bei strukturellen Problemen Gedanken machen oder wenn du Schleifen einsetzt.
                  [URL]http://hallophp.de[/URL]

                  Kommentar

                  Lädt...
                  X