Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP Code aus DB ausführen (eval ? für gettext möglich)

Einklappen

Neue Werbung 2019

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

  • selfmade02
    hat ein Thema erstellt PHP Code aus DB ausführen (eval ? für gettext möglich).

    PHP Code aus DB ausführen (eval ? für gettext möglich)

    Hallo,

    ich benutze für meine mehrsprachige Webseite gettext.
    In einer Tabelle der DB habe ich jedoch Vorgabetexte in englisch stehen.
    Dioese versuche ich aktuell auch mit gettext ausgeben zu lassen so dass ich diese dann später mehrsprachig habe.

    Nun habe ich gelesen das man mit "eval " PHP Code ausgeben lassen kann

    Habe dazu dieses Beispiel gefunden
    PHP-Code:
    $var_1 'Briefmarke';

    $var_2 'Mauritius';

    $text 'Wer kennt nicht die wertvolle $var_1 von $var_2.';

    echo 
    $text;

    echo 
    '<br>';

    eval ( 
    "\$text = \"$text\";" );

    echo 
    $text
    ich dachte wenn ich jetzt in der DB meine Vorgabetexte in gettext-form schreibe also
    z.B. so

    Datenbankinhalt:

    Spalte_1 : _('Hello')
    Spalte_2: _('Greetings')

    und dann in der Seite.php

    selbst die gettext Variablen bestimme (so dass sie erstmal von gettext erkannt und man sie mit poedit bearbeiten kann

    $test1 = _('Greetings');
    $test2 = _('Hello');


    eval ( "\$text1 = \"$row->Spalte_1\";" );
    eval ( "\$text2 = \"$row->Spalte_2\";" );

    echo " das ist ein test aus spalte_1" .$text1."<br>";
    echo " das ist ein test aus spalte_2 ".$text2."<br>";

    ob das funktionieren könnte?

    was meint ihr?

    Grüße Jürgen

  • tr0y
    antwortet
    Zum Beispiel. Allerdings solltest du Platzhalter nutzen die einzigartig sind und nicht Bestandteil einer regulären Benutzereingabe sind.

    PHP-Code:
    $string 'Hello {name}!';

    echo 
    str_replace('{name}''World'$string); 

    Einen Kommentar schreiben:


  • selfmade02
    antwortet
    Zitat von tr0y Beitrag anzeigen
    Code gehört nicht in die Datenbank. Arbeite mit Platzhalter und ersetze die Platzhalter nachdem du die Daten aus der Datenbank geholt hast.

    [man]strtr[/man] und [man]str_replace[/man] helfen dir dabei.
    ´Damit ich es besser verstehe

    in der DB steht also der Text wie folgt

    -Hello--

    und die "-" ersetze ich dann mit " -(' " und "--" mit " ') "

    meinst Du das so?

    Gruß Jürgen

    Einen Kommentar schreiben:


  • rkr
    antwortet
    oder sprintf / vsprintf.
    Alternativ dann vielleicht noch symfony: translation und/oder symfony: expression language (für "wenn anzahl=1, dann singular, sonst plural")

    Einen Kommentar schreiben:


  • tr0y
    antwortet
    Code gehört nicht in die Datenbank. Arbeite mit Platzhalter und ersetze die Platzhalter nachdem du die Daten aus der Datenbank geholt hast.

    [man]strtr[/man] und [man]str_replace[/man] helfen dir dabei.

    Einen Kommentar schreiben:

Lädt...
X