假设我有一个包含html页面的字符串变量。在这个html页面变量中,我有一个echo语句-例如<?php echo 'whatever' ?>
我可以以某种方式将该变量"呈现"到浏览器中,并让php评估该变量中的所有php语句吗?
如果我只是回显这个变量,html会表现得很好,但php语句不会被评估。如果我尝试在整个页面上运行eval,它只会抛出一个异常(有意义(。
我知道这听起来很糟糕,但我正在想办法做到这一点,而不需要将变量保存到文件中并加载文件。
BTW:我在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)
也不起的作用
您可以将视图数据写入变量,并在其他视图中使用此变量
在你的控制器:
$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
我不确定我是否理解你,但我认为这正是你想要的。
如果page1_view.php
包含HTML并且需要回显一个变量。例如
<div>Foo says: <?php echo $whatever; ?>!!!</div>
要将"视图"作为一个字符串并计算变量$whatever
,您需要这样做。
$view_data['whatever'] = "Hello World";
$page1 = $this->load->view('page1_view', $view_data, TRUE);
CCD_ 5现在包含作为CCD_ 6的内容的字符串。在这种情况下,
"<div>Foo says: Hello World!!!</div>"