Ankündigung

Einklappen
Keine Ankündigung bisher.

Eingabe = Oktal?

Einklappen

Neue Werbung 2019

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

  • Eingabe = Oktal?

    Wie kontrolliere ich am besten ob die Eingabe (1. Parameter meiner Funktion) wirklich ein Oktalwert ist? Ich kenne nun keine native PHP Funktion, die mir da weiterhilft. Kennt da vllt. doch jmd eine native Funktion oder kann mir da weiterhelfen?


  • #2
    "von Anfang bis Ende nur Zeichen zwischen 0 und 7 (einschließlich)"
    PHP-Code:
    <?php
    $eingabe 
    '1230';

    if(
    preg_match('!^[0-7]+$!'$eingabe)) {
        echo 
    'ist oktal';
    }
    else {
        echo 
    'ist nicht oktal';
    }
    ?>

    Kommentar


    • #3
      Ja solange es ein String ist, ists auch Okay aber es soll wie folgt übergeben werden:

      Code:
      foo(0777);
      Und da kommt in der Funktion ja schon 511(dez) anstatt von 0777(okt) an.

      Kommentar


      • #4
        Dann musst Du ihn, wenn Du ihn ausgibst eben konvertieren.

        http://de.php.net/decoct

        Kommentar


        • #5
          Code:
          function f($oo) {
              return decoct($oo);
          }
          
          var_dump(f(0144)); // 144
          var_dump(f(100)); // 144
          Hm scheinbar kann man bei chmod() die oktale sowie die dezimale Schreibweise verwenden. Also sollte ich dies auch als Vorteil nutzen können. Nun mal nachschauen in wieweit dies in meine Funktion passt.

          Kommentar


          • #6
            Hm scheinbar kann man bei chmod() die oktale sowie die dezimale Schreibweise verwenden.
            klar kannst Du das. Oktal, Dezimal, Hexadezimal, binär ... das sind nur Darstellungsformen und kümmern (von Zeichenketten abgesehen) die Funktionen kein Stück.

            Kommentar


            • #7
              Okay, da fällt mir grad mal wieder ein, dass meine eigentliche Aufgabe eine Funktion zu schreiben, die mir sagt, ob die eingabe oktal war, aber ich glaube, dass es schon seinen Sinn hat, dass es keine native Funktion von PHP gibt, die diese Frage beantwortet.

              Kommentar


              • #8
                die mir sagt, ob die eingabe oktal war
                Und die Eingabe kommt nicht als Zeichenkette beim Skript an?

                Kommentar


                • #9
                  f(0777)... dann mach du mal echo $oo in der Funktion... Um was wetten wir, dass da dann nicht 0777 zurückgegeben wird.

                  Kommentar


                  • #10
                    Zitat von Bruchpilot
                    Oktal, Dezimal, Hexadezimal, binär ... das sind nur Darstellungsformen

                    Kommentar


                    • #11
                      Zitat von karl-150
                      Zitat von Bruchpilot
                      Oktal, Dezimal, Hexadezimal, binär ... das sind nur Darstellungsformen
                      Ja, aber kommt 0144 bzw. 100 nicht als String sondern als Integer/Dezimalzahl an.

                      Kommentar


                      • #12
                        Das war nicht meine Frage.
                        Um was für eine Eingabe handelt es sich? Kommt der Wert zB per HTML Formular zum Skript oder per stdin oder oder oder?

                        Kommentar


                        • #13
                          Zitat von freq.9
                          Ja solange es ein String ist, ists auch Okay aber es soll wie folgt übergeben werden:

                          Code:
                          foo(0777);
                          Und da kommt in der Funktion ja schon 511(dez) anstatt von 0777(okt) an.

                          Kommentar


                          • #14
                            Dann steht das also schon literal im Skript und ist garkeine Eingabe.

                            Kommentar

                            Lädt...
                            X