Hallo
UFF! Nun hab ichs endlich geschafft!
function getLang($lang, $id)
{
mysqlConnect();
// Infos von der DB holen
$sql = "SELECT * FROM table_lang WHERE ID = $id";
if ( $result = mysql_query($sql) )
{
// Bei erfolgreicher MySQL-Abfrage, PHP-Variablen umwandeln
$row = mysql_fetch_array($result);
// schauen welche PHP-Variablen enthalten sind
$up_to_var = $row[$lang];
// ist noch eine Variable drin?
for ( $i = 0; strpos($up_to_var, "<$") !== false; $i++ )
{
// wo ist naechste Var?
$position = strpos($up_to_var, "<$");
// bis vor Var-Name abschneiden
$up_to_var = substr($up_to_var, ($position+5));
// wo ist Var fertig?
$position = strpos($up_to_var, ">");
// Var-Name extrahieren
$var_name = substr($up_to_var, 0, $position);
// Var-Name in ein Array packen
$variables[$i] = $var_name;
}
// nun sind alle PHP-Variablen vom String extrahiert worden
// es werden nun alle Variablen durch "global" in die Funktion geholt
foreach ( $variables as $variable )
{
eval("global \$$variable;");
}
// PHP-Variablen im String umwandeln
eval("\$string = \"$row[$lang]\";");
// Die Zeichen < und > entfernen
$string = str_replace('<', '', $string);
$string = str_replace('>', '', $string);
$return = $string;
} else {
$return = false;
}
return $return;
}
Beispiel:
$name = 'Tester';
$test_var = 'sowas!';
print_r( getLang('fr', 2) );
Der Eintrag in der DB lautet: "Mon nom est <$name>! Je veux vous encore dire: <$test_var>, n'est pas?"
Vielen Dank für eure Hilfe!
Lg Thomas