xplosiv: 2 variabeln zusammenfügen

hallo zusammen

ich stehe mal wieder auf dem schlauch und könnte eure hilfe gebrauchen.

wie kann ich einen variabel variabel machen, sprich:

ich habe 2 variabeln:

$text_en
$text_de

nun möchte ich dies dynamisch gestalten, sprich die sprache aus der session auslesen und denn entsprechenden text anzeigen.

ich habe so versucht.

$text = $text_.$_SESSION['sprache'];

aber das klappt nicht...da gibt es doch bestimmt eine ganz einfach lösung oder?

besten dank für eure hilfe

gruss

andy

  1. Hallo xplosiv.

    $text_en
    $text_de

    ich habe so versucht.

    $text = $text_.$_SESSION['sprache'];

    aber das klappt nicht...da gibt es doch bestimmt eine ganz einfach lösung oder?

    Was ist normalerweise in $text_en und $text_de enthalten? Und warum verwendest du dafür nicht eine Variable statt derer zwei?

    Einen schönen Donnerstag noch.

    Gruß, Ashura

    --
    Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|
    30 Days to becoming an Opera8 Lover -- Day 21: Toolbars
    Meine Browser: Opera 8.01 | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
    [Deshalb frei! - Argumente pro freie Software]
    1. ganz einfach ich möchte nicht jedesmal eine if abfrage mache um heraus zufinden welche sprache gerade gewählt ist.

      sprich ich möchte mit dieser variabel einen text in einem mail() einfügen, je nach sprache aber einen anderen.

      aus diesem grund habe ich mehrere variabeln:

      $text_de = "hallo welt";
      $text_en = "hello world";

      da ich in der session['sprache'] entweder "en" oder "de" steht, möchte ich dies der variabel anhängen.

      zb. echo $text_.$_SESSION['sprache']

      aber ebe das klappt nicht. ich erhalte die fehler meldung die varibel $text_ sei nicht definiert...ist ja auch logisch...aber eben wie mache ich das richtig.

      ich hoffe du versteht jetzt warum und kannst mir ev. helfen.

      1. Hallo x.

        ich hoffe du versteht jetzt warum und kannst mir ev. helfen.

        Ja, ich verstehe schon, was du möchtest. Du möchtest die Variablenbezeichnung variabel machen.
        Dies ist aber AFAIK nicht möglich. Du kannst zwar die Variable variabel machen und somit auch über ihren Wert auf sie zurückgreifen, doch ich denke nicht, dass dir dies hier allzu viel hilft.

        Aber ich verstehe nicht, warum du keine Abfrage machen möchtest.

        Es würde doch schon eine einzige Abfrage des Inhaltes der Session-Variable genügen um darauf aufbauend den Mailtext auszuwählen.

        Einen schönen Donnerstag noch.

        Gruß, Ashura

        --
        Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|
        30 Days to becoming an Opera8 Lover -- Day 21: Toolbars
        Meine Browser: Opera 8.01 | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
        [Deshalb frei! - Argumente pro freie Software]
        1. hallo

          geht das wirklich nicht...komisch...das wäre doch noch gemütlich.

          klar ist es in diesem beispiel kein problem eine if abfrage zu machen. aber wenn man mit zb. 10 sprachen arbeitet ist es relativ mühsahm, jede sprache abzufragen. da könnte man sich sehr viel zeit ersparen, wenn man die variabeln zusammen setzten könnte.

          es hat mich einfach schon lange interessiert und da ich zur zeit dies wieder brauchen könnte, wollt ich das mal abchecken :-)

          danke für deine hilfe

          1. Hallo x.

            geht das wirklich nicht...komisch...das wäre doch noch gemütlich.

            Wenn sonst niemand etwas dazu meint, ist es wahrscheinlich so.
            Jedenfalls habe ich bisher auch noch nichts in dieser Richtung finden können.

            klar ist es in diesem beispiel kein problem eine if abfrage zu machen. aber wenn man mit zb. 10 sprachen arbeitet ist es relativ mühsahm, jede sprache abzufragen. da könnte man sich sehr viel zeit ersparen, wenn man die variabeln zusammen setzten könnte.

            Wie wäre es mit Arrays?

            $langs = array(  
            de => array("Hallo Welt!", "Nichts Neues", "Tschau!"),  
            en => array("Hello World!", "Nothing new", "Goodbye!"),  
            .. => array("...", "...", "...")  
            );  
              
            # Sollte stimmen...  
              
            
            

            Wie du auf die einzelnen Werte zugreifst, dürftest du ja wissen.

            Einen schönen Donnerstag noch.

            Gruß, Ashura

            --
            Selfcode: sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:) fl:( ss:) ls:[ js:|
            30 Days to becoming an Opera8 Lover -- Day 21: Toolbars
            Meine Browser: Opera 8.01 | Firefox 1.0.6 | Lynx 2.8.5 | Netscape 4.7 | IE 6.0
            [Deshalb frei! - Argumente pro freie Software]
          2. Hi,

            klar ist es in diesem beispiel kein problem eine if abfrage zu machen. aber wenn man mit zb. 10 sprachen arbeitet ist es relativ mühsahm, jede sprache abzufragen.

            es sit auch unschön für jede sprache ne variable zu haben. deshalb würd
            ich an deiner stelle ein switch machen und dann dementsprechend ein
            $text = "Hallo Welt" oder = "Hello World" usw. machen. durch das switch
            wirds sogar wenn du den text vernüftig einrückst, sehr übersichtlich.

            MfG

          3. Hallo

            klar ist es in diesem beispiel kein problem eine if abfrage zu machen. aber wenn man mit zb. 10 sprachen arbeitet ist es relativ mühsahm, jede sprache abzufragen. da könnte man sich sehr viel zeit ersparen, wenn man die variabeln zusammen setzten könnte.

            es hat mich einfach schon lange interessiert und da ich zur zeit dies wieder brauchen könnte, wollt ich das mal abchecken :-)

            Ich habe das erst letztens so gemacht:

            • Mit C. Seilers Funktion ermittle ich die Sprache des Browsers.
            • Die Funktion gibt für deutsch "de" zurück. Nennen wir die Variable "$z".
            • Für jede unterstützte Sprache lege ich eine PHP-Datei mit einem Array der Textfetzen an. "lang_de.php" für die deutschen Texte.
            • Mit $lan = "lang_".$z.".php"; baue ich den Dateinamen und include dann die Sprachdatei mit include_once($lan);

            Schon habe ich alle Elemente für die Ausgabe der entsprechenden Sprache.

            Tschö, Auge

            --
            Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
            (Victor Hugo)
            Veranstaltungsdatenbank Vdb 0.1
  2. hi,

    ich stehe mal wieder auf dem schlauch und könnte eure hilfe gebrauchen.

    wie kann ich einen variabel variabel machen, sprich:

    ich habe 2 variabeln:

    $text_en
    $text_de

    nun möchte ich dies dynamisch gestalten, sprich die sprache aus der session auslesen und denn entsprechenden text anzeigen.

    ich habe so versucht.

    $text = $text_.$_SESSION['sprache'];

    aber das klappt nicht...da gibt es doch bestimmt eine ganz einfach lösung oder?

    in Perl würde es so gehen (bin in Php nicht ganz so fit):

    $text = ${'text' . $sprache};

    woher Du dein $sprache bekommst, weiß ich nicht, aber ansonsten müßte $text dann das richtige haben.

    Gruß
    Reiner

    1. $text_en
      $text_de

      $text = ${'text' . $sprache};

      sorry, müßte genauer heißen:

      $text = ${'text_' . $sprache};

      Gruß
      Reiner