Wil*_*lco 32 php function output-buffering
抑制函数可能产生的任何输出的最简单方法是什么?说我有这个:
function testFunc() {
echo 'Testing';
return true;
}
Run Code Online (Sandbox Code Playgroud)
我想调用testFunc()并获得其返回值,而不会在页面中显示"Testing".假设这是在其他代码的情况下不输出其他的东西,是有这样的好方法?也许搞乱输出缓冲区?
Cod*_*lan 60
是的,弄乱输出缓冲区就是答案.只需在调用输出的方法之前打开它(不是函数本身,但是在你调用它的地方,你可以将它包装在你的整个脚本或脚本流程中,但是你可以尽可能地使它"紧密"将它包裹在方法的调用周围):
function foo() {
echo "Flush!";
return true;
}
ob_start();
$a = foo();
ob_end_clean();
Run Code Online (Sandbox Code Playgroud)
并且不会生成任何输出.
Ray*_*yat 11
干得好:
ob_start();
testFunc();
ob_end_clean();
Run Code Online (Sandbox Code Playgroud)
"ob"代表"输出缓冲",请看这里的手册页:http://www.php.net/outcontrol