首页 > 解决方案 > 从变量渲染 PHP HTML 页面

问题描述

假设我有一个包含 html 页面的字符串变量。在那个 html 页面变量中,我有一个 echo 语句 - 例如<?php echo 'whatever' ?>

我可以以某种方式将该变量“呈现”给浏览器,并让 php 评估变量中的所有 php 语句吗?

如果我只是回显变量,则 html 呈现良好但 php 语句不被评估。如果我尝试在整个页面上运行 eval,它只会引发异常(有意义)。

我知道这听起来像是不好的做法,但我试图找出一种方法来做到这一点,而不会将变量保存到文件并加载文件。

顺便说一句:我在codeigniter中做这一切,所以如果有办法在那个变量上使用$this->load->view...那就更好了:)

示例代码:

$x = /* Some logic to get a template data from another server */
/* $x is "<html><?php echo 'bla'; ?></html> */
echo $x;

这不起作用-尝试运行echo eval($x)也不起作用

标签: phphtmlcodeigniter

解决方案


您可以将视图数据写入变量并在其他视图中使用此变量

在你的控制器中:

$data['view1'] = $this->load->view('my_view1', '', TRUE); // write view data to variable
$this->load->view('my_view2', $data);

在 my_view2 中:

<html>
<?=$view1?>
</html>

该文档可以帮助您将视图作为数据返回 - Codeigniter


推荐阅读