向/dev/null发送一个PHP函数“;回声;输出


Send to /dev/null a PHP function "echo" output

现在我需要处理一个格式错误的函数,该函数使用echo命令进行输出,而不是return

当我尝试调用函数时,它会在终端中打印:

{"status":"OK","message":"Pong"}

我需要将这个JSON存储到一个数组中,但不需要在终端中打印这个输出。我正在构建一个API,我需要有一个清晰的输出。变量的最终值必须是:

Array
(
    [status] => OK
    [message] => Pong
)

并且不要在终端中打印任何内容。如何将函数生成的"echo"输出发送到/dev/null或类似的位置?

谢谢!

如果您想获得变量的输出,您应该使用ob_startob_get_contentsob_get_clean函数,例如:

<?php
ob_start();
echo "Hello ";
$out1 = ob_get_contents();
echo "World";
$out2 = ob_get_contents();
ob_end_clean();
var_dump($out1, $out2);
/* 
string(6) "Hello "
string(11) "Hello World"
*/

<?php
ob_start();
echo "Hello ";
$out1 = ob_get_clean();
var_dump($out1);
/*
string(6) "Hello "
*/

代码示例:

<?php
ob_start();
echo '{"status":"OK","message":"Pong"}';
$out1 = ob_get_clean();
var_dump(json_decode($out1, true));
/*
array(2) {
  ["status"]=>
  string(2) "OK"
  ["message"]=>
  string(4) "Pong"
}
*/