Kathi: Variable in Liste nachträglich ändern im Betrieb der Seite

Beim Laden meiner Seite lade ich ganz am Anfang meine Sprachausgabe
Beispiel (Inhalt der Sprachausgabe:

$TEXT['titel'] = "Homepage";
$TEXT['untertitel'] = "Testen und Staunen";
$TEXT['gehtnicht']      =“das Ergebniss „.$ergebnis.“ ist falsch“;

Wenn dann eine Ausgabe erfolgt wird diese mir echo $TEXT['titel'] vollzogen. Soweit so gut, jetzt habe ich aber ein Problem und zwar wenn aktuelle Daten in die Staren Daten der Sprachdatei mit eingebunden werden sollen.

Ich gehe so vor…

Ich lade die Sprachausgabe
Dann vollziehe ich eine Rechnung, das Ergebnis steht in $ergebnis.
Nun möchte ich sie ausgaben mit $TEXT['gehtnicht'], was ja klar ist, weil wenn am Anfang die Sprachdatei geladen wird ist die Variable $ergebnis noch nicht gefüllt. Wie bekomme ich es also hin das die Sprachdatei Variable gefüllt ist?

Danke schon mal

Kathi

  1. Wie bekomme ich es also hin das die Sprachdatei Variable gefüllt ist?

    Du sprichst in Rätseln.

  2. Sorry, ich versuche noch ein bischen Licht ins Dunkel zu bringen!

    Bei Laden der index.php seite (jeder anderen Seite auch) wird am Anfang die

    language.php includet in der die ganzen Variablen sind die ausgegeben werden, um dies handelt es sich.

    1. Sorry, ich versuche noch ein bischen Licht ins Dunkel zu bringen!

      Wie wärs, wenn du anstatt einer Taschenlampe einfach mal den Lichtschalter verwendest? ;)

      language.php includet in der die ganzen Variablen sind die ausgegeben werden, um dies handelt es sich.

      Das sagtest du bereits - ob nun der Dateiname für uns bekannt ist oder nicht spielt keine Rolle, das Problem ist dennoch unverständlich.

  3. Hello,

    Beim Laden meiner Seite lade ich ganz am Anfang meine Sprachausgabe
    Beispiel (Inhalt der Sprachausgabe:

    $TEXT['titel'] = "Homepage";
    $TEXT['untertitel'] = "Testen und Staunen";
    $TEXT['gehtnicht']      =“das Ergebniss „.$ergebnis.“ ist falsch“;

    Wenn dann eine Ausgabe erfolgt wird diese mir echo $TEXT['titel'] vollzogen. Soweit so gut, jetzt habe ich aber ein Problem und zwar wenn aktuelle Daten in die Staren Daten der Sprachdatei mit eingebunden werden sollen.

    Ich gehe so vor…

    Ich lade die Sprachausgabe
    Dann vollziehe ich eine Rechnung, das Ergebnis steht in $ergebnis.
    Nun möchte ich sie ausgaben mit $TEXT['gehtnicht'], was ja klar ist, weil wenn am Anfang die Sprachdatei geladen wird ist die Variable $ergebnis noch nicht gefüllt. Wie bekomme ich es also hin das die Sprachdatei Variable gefüllt ist?

    Das was Du suchst, nennt sich "Templatetechnik", hier allerdings etwas komplexer, weil das Template selber noch nicht zusammengebaut ist, sondern seine Komponenten noch im Array $TEXT verpackt sind.

    Es kommt dann später also auf die Reihenfolge der Ersetzungen an.

    $TEXT['titel'] = "##OWNER##Homepage";
     $TEXT['untertitel'] = "Testen und Staunen";
     $TEXT['gehtnicht']     = "das Ergebnis##ERGEBNIS## ist falsch";

    $ergebnis = '7*3';       ## dynamische Ersetzung berechnen

    $_replace['##OWNER']      = 'Kathi's ';   # statische Ersetzung
     $_replace['##ERGEBNIS##'] = " $ergebnis";  # dynamische Ersetzung, muss vorher bekannt sein

    foreach($TEXT as $key => $val)
     {
        $TEXT[$key] = str_replace($array_keys($_replace), array_values($_replace), $val);
     }

    echo_template($TEXT);    ## und in dieser Funktion ird dann das Array $TEXT ausgegeben

    Was passiert?
    Das gesamte Array $TEXT wird linear iteriert und jedes Element von str_replace() nach allen Ersetzungsplatzhaltern durchsucht. Diese werden dann durch die Ersetzungen ausgetauscht.

    Schau dir die Beschreibungen zu den Funktionen an.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hello,

      ... und den ersten Fehler in meinem Vorschlag habe ich schon gefunden ;-))

      Das was Du suchst, nennt sich "Templatetechnik", hier allerdings etwas komplexer, weil das Template selber noch nicht zusammengebaut ist, sondern seine Komponenten noch im Array $TEXT verpackt sind.

      Es kommt dann später also auf die Reihenfolge der Ersetzungen an.

      $TEXT['titel'] = "##OWNER##Homepage";
      $TEXT['untertitel'] = "Testen und Staunen";
      $TEXT['gehtnicht']     = "das Ergebnis##ERGEBNIS## ist falsch";

      $ergebnis = '7*3';       ## dynamische Ersetzung berechnen

      $_replace['##OWNER##']      = 'Kathi's ';   # statische Ersetzung

      $_replace['##ERGEBNIS##'] = " $ergebnis";  # dynamische Ersetzung, muss vorher bekannt sein

      foreach($TEXT as $key => $val)
      {
          $TEXT[$key] = str_replace($array_keys($_replace), array_values($_replace), $val);
      }

      echo_template($TEXT);    ## und in dieser Funktion ird dann das Array $TEXT ausgegeben

      Darin muss dann auch die Vorbereitung für den Kontext vorgenommen werden

      Was passiert?
      Das gesamte Array $TEXT wird linear iteriert und jedes Element von str_replace() nach allen Ersetzungsplatzhaltern durchsucht. Diese werden dann durch die Ersetzungen ausgetauscht.

      Schau dir die Beschreibungen zu den Funktionen an.

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
       ☻_
      /▌
      / \ Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
      1. ... und den ersten Fehler in meinem Vorschlag habe ich schon gefunden ;-))

        wie wär's mit dem konzeptionellen Ansatz, printf() zu verwenden?

        1. Hello,

          ... und den ersten Fehler in meinem Vorschlag habe ich schon gefunden ;-))

          wie wär's mit dem konzeptionellen Ansatz, printf() zu verwenden?

          Ich habe nichts dagegen. Aber wer den Vorschlag macht, sollte auch das Beispiel dazu liefern :-)

          str_replace() hat den Vorteil, dass es quasirekursiv arbeitet, wenn man die Ersetzungsreihenfolge beachtet.

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

          --
           ☻_
          /▌
          / \ Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de