我正在使用输出缓冲来处理东西(非常具有描述性,我知道)。
我想要做的是使输出缓冲结束,让处理程序函数执行其处理,然后将结果输出作为字符串, not 输出到浏览器。
这可能吗?我似乎无法找出实现这一目标所需的ob_end
/ ob_get
函数的组合......以及我最初的想法"我可以只缓冲输出ob_end_flush
"是......好吧,荒谬:p
作为我努力实现的基本例子:
<?php
ob_start(function($c) {return "PASS\n";});
echo "FAIL\n";
$c = ob_get_contents();
ob_end_flush(); // outputs PASS, as it has been processed
echo $c; // outputs FAIL, because that was the content of the buffer... unprocessed...
// I want it processed.
答案 0 :(得分:1)
我现在看到编辑和评论的问题。你是否正确需要另一个输出缓冲区,因为只有在调用flush或end时以及函数中的任何get之前调用回调:
ob_start(function($c) {return "PASS\n";});
echo "FAIL\n";
ob_start();
ob_end_flush(); // buffers PASS, as it has been processed
$c = ob_get_contents();
echo $c; // outputs PASS