LiAn: variable nach bestimmtem inhalt überprüfen

guten morgen allerseits.

wahrscheinlich ist das eine ganz einfach frage, aber irgendwie komm ich nicht ganz drauf.

ich habe eine seite, bei der jede unterseite eine $siteId hat.
Bsp: $siteId = 17
Diese Unterseiten haben dann wieder verschiedene Unterseiten mit einer $siteId.
Bsp: $siteId = 17.1

Jetzt will ich verschiedene Obermenupunkte aufleuchten lassen, wenn Seiten mit gewissen $siteIds aufgerufen werden.

und anstelle von if($siteid == 17 | $siteId == 17.1 | ...){} sollte man doch sagen können if($siteId enthält 17){}

Ich komm momentan einfach nicht auf die richtige schreibweise.

würde mich sehr freuen, wenn mir da schnell jemand auf die sprünge helfen könnte.

vielen dank schon im voraus.

  1. Guten Morgen LiAn,

    und anstelle von if($siteid == 17 | $siteId == 17.1 | ...){} sollte man doch sagen können if($siteId enthält 17){}

    Du solltest die Formulierung derBedingung einfach noch etwas genauer vornehmen und auch die übrigen Rahmenbedingungen berücksichtigen

    17
       17.123
       171
       171.2
       217.3

    Schau Dir mal die obigen Zahlen, die teilweise auch Strings sein könnten, wenn der Punkt KEIN Dezimaltrennzeichen ist, sondern eben nur ein Punkt.

    Datentypen sind deshalb eingeführt worden, weil der Umgang mit den Daten immer unterschiedlich ist. Mit dem Tagesdatum rechnet man anders, als mit einem Wort, usw.

    LG
    Chris©

    1. Guten Morgen Chris

      Schau Dir mal die obigen Zahlen, die teilweise auch Strings sein könnten, wenn der Punkt KEIN Dezimaltrennzeichen ist, sondern eben nur ein Punkt.

      sorry, hab die $siteId nicht ganz richtig beschrieben. Ich definiere sie in jeder Unterseite so:

      $siteId = "17";
      $siteId = "17.1";
      $siteId = "17.11";

      die Ids sind also Strings. oder? Der Punkt ist kein Dezimalzeichen.

      ich sollte doch irgendwie abfragen können, ob der Inhalt einer Variable einen gewissen String enthält. Nur wie mach ich das? mit substr, oder mit preg_match, oder...?

      1. Hallo LiAn,

        Schau Dir mal die obigen Zahlen, die teilweise auch Strings sein könnten, wenn der Punkt KEIN Dezimaltrennzeichen ist, sondern eben nur ein Punkt.

        sorry, hab die $siteId nicht ganz richtig beschrieben. Ich definiere sie in jeder Unterseite so:

        $siteId = "17";
        $siteId = "17.1";
        $siteId = "17.11";

        Und was ist, wenn sie dann mal

        $siteId = "217.12";

        lautet? Da steckt auch ein "17" drin.

        Darum habe ich Dir geraten, Dich erst einmal für einen Datentyp zu entscheiden, der dann auch immer gleich ausgewertet wird.

        Wenn die Hauptseite z.B. 17.0 heißen würde, könnte man den STRING immer am Punkt aufteilen. Und wie würde denn die Unterseite der Unterseit heißen? 17.1.22 ?

        Bevor Du also Deine Struktur im Seitenbezeichner codieren kannst, musst Du wissen, welche Formen die Struktur annehmen kann später.

        LG
        Chris©

        1. Wenn die Hauptseite z.B. 17.0 heißen würde, könnte man den STRING immer am Punkt aufteilen. Und wie würde denn die Unterseite der Unterseit heißen? 17.1.22 ?

          Guter Einwand, ich werde die Hauptseite in 17.0 umbenennen.

          Der Rest der Seitenstruktur ist bekannt. Es wird keine Seiten geben, die mehrere Punkte in der $siteId haben.

          Also nur mit einer "Ziffer" nach dem Punkt oder mit zwei "Ziffern" nach dem Punkt.

          Vor dem Punkt werden nur zwei "Ziffern" sein.

          Kannst du mir sagen, wie ich nach den "Ziffern" vor dem Punkt frage?

          1. ich hab's jetzt mal so versucht:

              
            <?php if(strstr($siteId, '.') == '17') { echo "class='active'"; } else { echo "class='inactive'"; }?>  
            
            

            funktioniert aber leider nicht ganz. Siehst du den Fehler?

            1. Ich hab's!

                
              <?php if(substr($siteId, 0, 2) == '17') { echo "class='active'"; } else if(substr($siteId, 0, 2) != '17'){ echo "class='inactive'"; }?>  
              
              

              Merci für den gedankenanreiz.

            2. Hallo,

              ich hab's jetzt mal so versucht:

              Stunden rumprobieren erspart einem Minuten in der Doku zu lesen ...

              <?php if(strstr($siteId, '.') == '17') { echo "class='active'"; } else { echo "class='inactive'"; }?>

              
              >   
              > funktioniert aber leider nicht ganz. Siehst du den Fehler?  
                
              dir fehlt ein Link zur Doku? <http://de2.php.net/manual/de/function.strstr.php>  
                
              Gruß plan\_B
              
              -- 
                   \*®\*´¯`·.¸¸.·