你能否将print()的输出添加到变量中?
我遇到了以下情况:
我有一个类似于以下内容的php文件:
title.php
<?php
$content = '<h1>Page heading</h1>';
print($content);
我有一个看起来像这样的php文件:
page.php
<?php
$content = '<div id="top"></div>';
$content.= $this->renderHtml('title.php');
print($content);
我有一个函数renderHtml()
:
public function renderHtml($name) {
$path = SITE_PATH . '/application/views/' . $name;
if (file_exists($path) == false) {
throw new Exception('View not found in '. $path);
return false;
}
require($path);
}
当我在page.php中转储内容变量时,它并不包含title.php的内容。只有在调用title.php时才会将其内容打印出来,而不是添加到变量中。
我希望我的意图已经很清楚了。如果不清楚,请告诉我需要了解什么。 :)
感谢你的所有帮助!
PS
我发现已经有一个与我的问题类似的问题了。但它是关于Zend FW的。 如何捕获Zend视图输出而不是实际输出 然而,我认为这正是我想做的。
我应该如何设置函数以使其像那样运行?
编辑
只是想分享最终的解决方案:
public function renderHtml($name) {
$path = SITE_PATH . '/application/views/' . $name;
if (file_exists($path) == false) {
throw new Exception('View not found in '. $path);
return false;
}
ob_start();
require($path);
$output = ob_get_clean();
return $output;
}
$this->renderHtml('page.php');
,以便它打印出<div id="top"></div><h1>Page heading</h1>
? - PeeHaa