现在我需要处理一个格式错误的函数,该函数使用echo命令进行输出,而不是return。
当我尝试调用函数时,它会在终端中打印:
{"status":"OK","message":"Pong"}
我需要将这个JSON存储到一个数组中,但不需要在终端中打印这个输出。我正在构建一个API,我需要有一个清晰的输出。变量的最终值必须是:
Array
(
[status] => OK
[message] => Pong
)
并且不要在终端中打印任何内容。如何将函数生成的"echo"输出发送到/dev/null或类似的位置?
谢谢!
如果您想获得变量的输出,您应该使用ob_start
和ob_get_contents
或ob_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"
}
*/