我一直在寻找这一段时间..这可能很简单,但我似乎无法做到正确。PHP - 从数据库中获取值并显示已知值
我的网站使用带翻译的文件。每个翻译都有它自己的变量。
像:$_text_login
(它转换为:登录或Aanmelden或Derp)。
我在我的数据库中创建了一个菜单表。其中一个菜单项有文字:$_text_login
显然,当我得到菜单信息时,它没有显示当前设置的变量值,它只是显示$_text_login
。
我试过eval()但是,这并不工作..
谁能帮助?
我一直在寻找这一段时间..这可能很简单,但我似乎无法做到正确。PHP - 从数据库中获取值并显示已知值
我的网站使用带翻译的文件。每个翻译都有它自己的变量。
像:$_text_login
(它转换为:登录或Aanmelden或Derp)。
我在我的数据库中创建了一个菜单表。其中一个菜单项有文字:$_text_login
显然,当我得到菜单信息时,它没有显示当前设置的变量值,它只是显示$_text_login
。
我试过eval()但是,这并不工作..
谁能帮助?
我不推荐这种方法,我会santize变量名,但是从它的声音,你可以实现你说的话有:
echo eval('return '. $item . ';');
凡$项目会从结果数据库。
可以说$row
是您从数据库中收到的结果,而text
是包含该变量的列的名称。 然后,你可以这样做:
echo $$row['text'];
如果$row['text']
为_text_login
这应该输出的$_text_login
值。 数据库中不应该有$。
根据PHP的文档,你可以只使用$$varname
结构:我的意思是:
<?php
$fruit = "apple";
$variable = "fruit";
print_r($$variable); //outputs apple
明白了!谢谢..
评估和演示工作做最后。因为我相匹配的实际变量... 我觉得自己很蠢,现在..
而($ main_obj = $ query_mainmenuitems-> fetch_object()){
if (preg_match('/\$text_/',$main_obj->value)) {
$mainmenu_title = eval('return '.$main_obj->value.';');
} else {
$mainmenu_title = $main_obj->value;
}
}
它不应该是$ _text_logon ..我的所有的翻译有$ text_ [无论]
如果$ _text_login是一个变量,要渲染的STR它包含,你需要回声。例如:<?= $ _ text_login;?> – Kisaragi
所以基本上你需要帮助让你的模板系统工作? –
如果你不得不求助于'eval()'或*变量变量* hacks来让它起作用,无论如何,这对我来说意味着你做的事情很奇怪(或者错误)。如果我是你并且重新思考,我可能会回到这个画板上。 – CD001