這可能已經問過,但我無法找到答案,我有一些初步的搜索問題,所以在這裏它是:注入PHP變量轉換成HTML代碼
一個非常簡單的我目前的方法的例子注入PHP變量轉換成HTML如下:
HTML(file.php):
<tag><?php echo $variable; ?></tag>
PHP:
$variable = "value";
ob_start();
include "file.php";
$results = ob_get_clean();
這實現了正確的結果,但它每次都需要複製並粘貼這三行代碼才能將變量注入到我的HTML文件中,這讓我很煩惱。我有可能想在以後更改此注入功能的詳細信息,目前它已分散在我的代碼中的幾百個位置。
在一個完美的世界中,我將這三行轉移到一個單獨的函數中,該函數將文件路徑作爲輸入,並返回「編譯」結果。但是,該函數將不再有權訪問調用作用域,並且必須將該變量作爲另一個輸入傳遞。我能想到的這樣做的唯一事情是:
function injectVariables($filePath, array $variables)
{
//Built-in PHP function, extracts array key => value pairs into variable $key = value pairs in the current scope
extract($variables);
ob_start();
include $filePath;
return ob_get_clean();
}
這肯定能夠完成任務,這將是我實現,如果沒有任何更好的解決方案,但似乎不足對我來說很理想。它涉及每次運行時創建一個數組,只是爲了遍歷它並提取所有變量,這對我來說只是感覺有點不對。
有沒有人知道任何其他可能工作的方法?
它似乎工作得很好,沒有ob_start(); – Michael
如果你忽略它,你會看到什麼? – Michael
如果您直接回顯您的'ob_get_clean'調用(或等效地回顯結果變量),您將得到相同的結果。有或沒有'ob_start'調用,因爲包含該文件將直接輸出給用戶。但是,在我的項目中有很多地方需要將它們保存到一個變量中,而不是直接輸出(例如,將一個文件的結果注入另一個文件中)。 – MPLewis