输出缓冲不呈现php内容

问题描述:

我有一个模板控制器。在这个控制器我加载相应的模板,require_once这样的:输出缓冲不呈现php内容

ob_start(); 
$userInfo = $user->userDetails($_SESSION["userId"]); 
require_once('/templates/1/file1.php'); 
$output = ob_get_clean(); 

File1.php(该文件是在模板控制器“要求”)需要访问$userInfo然而,事实并非如此。我在做输出缓冲区有问题吗?

我认为问题是您的require_once失败,因为模板文件的路径不正确。

它可能应该是这样的:

require_once($_SERVER['DOCUMENT_ROOT'] . '/templates/1/file1.php'); 

require_once($global_template_path . '/templates/1/file1.php'); 

其中$global_template_path是一样的东西/home/yoursite/app/module

+0

感谢您的回答。它实际上是'require_once($ _ SERVER ['DOCUMENT_ROOT']。'/templates/1/file1.php');'为了简洁起见,我只是修剪它。奇怪的是,file1.php中的HTML加载并通过输出缓冲区输出,但是php不包含 –

+0

在这种情况下,您可以发布file1.php中的内容吗? – drew010

+0

这只是一些PHP循环的HTML,比如'foreach($ userInfo as $ info)'它错误地指出“foreach在xx中的参数无效”它指的是在我的模板控制器中定义的'$ userInfo'。谢谢! –