我一直在尋找這一段時間..這可能很簡單,但我似乎無法做到正確。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