Ankündigung

Einklappen
Keine Ankündigung bisher.

Verkapselte Variablen?

Einklappen

Neue Werbung 2019

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

  • Verkapselte Variablen?

    Da ich kompletter Neuling in PHP bin versuche ich seit 5 Stunden folgendes Problem zu lösen, vielleicht ist es ganz einfach, mich überfordert es jedoch.

    Ich würde gerne einen Htmlcode mit einer Variable definieren. Soweit bin ich gekommen, jedoch sollte dieser Htmlcode mehrmals untereinander ausgegeben werden und nur die Variable sollte sich ändern.

    Htmlcode = Htmlcode Variable Htmlcode
    Echo Htmlcode mit Variablenwert 1
    Echo Htmlcode mit Variablenwert 2
    usw...

    Was wäre der einfachste Weg so etwas darzustellen?

    Bisher habe ich nur folgendes hinbekommen:

    PHP-Code:
    $tier = array("Hase""Katze""Hund""Pferd");
    $tiernummer "0";
    $htmlcode "htmlcode <br>$tier[$tiernummer]<br> htmlcode";
    echo 
    "$htmlcode";

    $tiernummer "1";
    echo 
    "$htmlcode"
    Das Problem ist, dass nachdem der htmlcode erzeugt wurde, die verwendete Tiernummer nicht mehr geändert werden kann.

    Wahrscheinlich bin ich sogar auf dem komplett falschen Weg, wie würdet ihr es lösen?

    Beste Grüße

  • #2
    PHP-Code:
    $tier = array("Hase""Katze""Hund""Pferd");
    for(
    $tiernummer 0$tiernummer 4$tiernummer++) {
      echo 
    "html $tier[$tiernummer] html";

    Kommentar


    • #3
      Wenn das Array "sauber" initialisiert ist, kannst du auch den Array-Key als Zähler nutzen:

      PHP-Code:
      $aAnimals = ["Hase""Katze""Hund""Pferd"];

      foreach (
      $aAnimals as $key => $animal) {
          echo 
      $key+": " $animal "\n";
      }

      /*
      1: Hase
      2: Katze
      3: Hund
      4: Pferd
      */ 
      Und bei der Ausgabe an/zu HTML htmlspecialchars() nicht vergessen, das ist wichtig für diesen Kontextwechsel um Fehler und XSS-Lücken zu vermeiden.
      The string "()()" is not palindrom but the String "())(" is.

      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        Womöglich suchst du auch so etwas wie Templates?
        PHP-Code:
        $tier = array("Hase""Katze""Hund""Pferd");

        $htmlcode "htmlcode <br>{{tier}}<br> htmlcode";

        //http://jspit.de/?page=template
        $tpl tinytemplate::createFromString($htmlcode);

        echo 
        $tpl->assign('tier',$tier[0])->renderCode();  //Hase

        echo $tpl->assign('tier',$tier[1])->renderCode();  //Katze 
        Sieht für die eine Zeile ein wenig wie mit Kanonen nach Spatzen geschossen aus. Der HTML-Code liegt gewöhnlich in einer Datei und es werden in einem Rutsch auch mehr als ein Platzhalter ersetzt.
        Für ganz einfache Lösungen kann auch geschickt str_replace() benutzt werden.

        Kommentar


        • #5
          Vielen Dank für all die Antworten, hilft mir wirklich weiter!

          Ich würde gerne den HTML-Code mit der Variable nur einmal erstellen und hin und wieder anpassen.
          Die Hauptaufgabe besteht darin neue Tiernamen so einfach wie möglich hinzuzufügen.

          Der Code soll daraufhin bei jedem neuen Tiernamen eine weitere Kopie des HTML-Codes darunter setzen.

          Die erste Antwort ist eigentlich schon ziemlich genau wonach ich gesucht habe.
          Ist es möglich, dass beim Hinzufügen eines neuen Tiers die "$tiernummer < 4;" automatisch wächst?

          Ich glaube dafür müsste ich es mit der Version von hausl kombinieren, aber irgendwie bekomme ich das nicht ganz hin.

          Wie mache ich das am besten?

          jspit, danke für die Lösung, aber um später zu verstehen was es genau macht und den Überblick zu behalten würde ich es gerne so einfach wie möglich gestalten.

          Kommentar


          • #6
            Zitat von php1steiger Beitrag anzeigen
            Ist es möglich, dass beim Hinzufügen eines neuen Tiers die "$tiernummer < 4;" automatisch wächst?
            Ja, siehe count.

            Kommentar


            • #7
              Super, es funktioniert! Vielen Dank

              Kommentar


              • #8
                Siehe auch #3, da geht das auch automatisch. Grad als Info.

                Übrigens:
                PHP-Code:
                echo "$htmlcode"
                Lass die Anführungszeichen weg. https://php-de.github.io/jumpto/code...s-doubleqoutes
                The string "()()" is not palindrom but the String "())(" is.

                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar

                Lädt...
                X