脚本宝典收集整理的这篇文章主要介绍了将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(); }
这当然可以完成工作,如果没有更好的解决方案,它将是我实施的,但对我来说似乎不太理想.它涉及每次运行时创建一个数组,只是为了遍历它并提取所有变量,这对我来说感觉有点不对.
有谁知道可能有用的任何其他方法?
我不知道您的代码的结构,但我希望您使用的是MVC方法(或者至少是处理类的方法),以便您可以执行以下操作:
在主控制器中,创建一个类变量,如viewData,它将是一个数组.你把所有你想要的东西放进去
$this->viewData['username'] = $username; $this->viewData['myArray'] = array('foo' => 'bar'); $this->viewData['menuSubview'] = 'path_to_menu_subview.PHP';
public function render() { extract($this->viewData); ob_start(); include("myfile.PHP"); return ob_get_clean(); }
在myfile.PHP(使用HTML)中,您可以简单地执行到目前为止使用的内容
<div id="menu"><?PHP include($menuSubview);?></div> <p><?=$username;?></p> <p><?=$myArray['foo'];?></p>
整个代码可以是这样的.
class Something { protected $viewData; protected $viewFile; public function logic() { $this->userProfile(); echo $this->render(); } public function userProfile() { $this->viewData['username'] = 'John The Ripper'; $this->viewFile = 'myFile.PHP'; } public function render() { extract($this->viewData); ob_start(); include($this->viewFile); return ob_get_clean(); } }
以上是脚本宝典为你收集整理的将PHP变量注入HTML代码全部内容,希望文章能够帮你解决将PHP变量注入HTML代码所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。