<?PHP
ob_start();
?>
hi
<?PHP echo ob_get_contents(); ob_end_clean();
但没有输出.
如果我删除了ob_end_clean();输出是你好.如果在应用程序结束时未调用ob_flush(),则会再次自动刷新内容.
我需要使用ob_get_contents(),因为我将实现一个简单的缓存机制,将输出保存到文件中.
请帮忙.
谢谢!
解决方法:
更新:我很惊讶,但你的例子实际上与输出缓冲一起工作.我不认为PHP标签之间的HTML会起作用,但确实如此.
<?PHP
ob_start();
?>
Hello World
<?PHP
echo "Goodbye";
$test = ob_get_contents(); ob_end_clean(); echo "output:".$test;
?>
输出结果:Hello World Goodbye.
问题是你正在将ob_get_contents回显到缓冲区中.正如你在评论中提出的关于模板的问题一样,我仍然认为你的输出缓冲是错误的.您应该将PHP变量推送到HTML模板,而不是将HTML模板拉入PHP脚本.您还应该查看控制器/视图解决方案,但下面是一个基本示例.
模板化:对于模板,一个基本的例子可能是:
<?PHP
ob_start();
...PHP LOGIC HERE...
...PHP LOGIC HERE...
...PHP LOGIC HERE...
$content = ob_get_contents();
ob_end_clean();
?>
<html>
<body>
<div><?PHP echo $content; ?></div>
</body></html>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。