输出缓冲区,处理后得到内容?

时间:2015-05-21 17:42:54

标签: php

我正在使用输出缓冲来处理东西(非常具有描述性,我知道)。

我想要做的是使输出缓冲结束,让处理程序函数执行其处理,然后将结果输出作为字符串, 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.

1 个答案:

答案 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