输出缓冲不呈现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
感谢您的回答。它实际上是'require_once($ _ SERVER ['DOCUMENT_ROOT']。'/templates/1/file1.php');'为了简洁起见,我只是修剪它。奇怪的是,file1.php中的HTML加载并通过输出缓冲区输出,但是php不包含 –
在这种情况下,您可以发布file1.php中的内容吗? – drew010
这只是一些PHP循环的HTML,比如'foreach($ userInfo as $ info)'它错误地指出“foreach在xx中的参数无效”它指的是在我的模板控制器中定义的'$ userInfo'。谢谢! –