我刚刚开始玩输出缓冲,似乎遇到了障碍。我的网站使用模板系统加载html页眉/页脚和正确的内容模板。问题是在第一个加载的模板中设置了html标头。因此,当(if)加载另一个包含标题的模板(存储在字符串$ headers中)时,它不会将它们添加到标题中。我已经创建了一个真正草率的方法,我正在寻找更好地处理这个问题的建议。
的index.php
ob_start('ob_html_headers');
回调函数
function ob_html_headers($buffer)
{
global $headers;
return str_replace('</head>', $headers.'</head>', $buffer);
}
感谢任何帮助。
答案 0 :(得分:2)
ob_start
转换为$ str。=,那么您可以嵌套echo
。
基本上你似乎想要做的是允许以后的信息影响早期的输出,最好的方法是构建一个结构(不要担心一些字符串数组就足够了)代表你的页面,然后当你知道一切都需要去的地方时,最后“渲染”它。
答案 1 :(得分:0)
我不明白为什么“标题”存储在模板中。
据我所知,模板中使用的任何动态值都必须在业务逻辑部分中定义(很可能是从数据库中获取的)。
这样你就不会遇到这样的问题。