如何将函数结果存储在数组中以进行JSON编码?

时间:2013-06-13 23:21:49

标签: php ajax

我有:

 if ( isset( $_POST["test"] ) ) { 

$html1 = $object->htmlmarkup1();
$html2 = $object->htmlmarkup2();
$json = array("html1" => $html1, "html2" => $html2);

die(json_encode($json));
}

函数基于“测试”POST数据中的一些计算来回显html标记。函数使用echo而不是return,因为我在其他地方使用这些函数,我的代码格式更容易回显函数的结果,而不是先返回结果。

我在不使用函数的情况下通过在两个数组元素中放入“test1”和“test2”来测试它,结果json解码并在我的测试页中正确显示“test1”和“test2”。

1 个答案:

答案 0 :(得分:3)

您可以使用输出缓冲。这允许您将输出保存在缓冲区中,而不是将其发送到客户端,然后将其恢复(例如将其存储在变量中)。

请参阅ob_start()ob_get_clean()以及所有其他相关功能。

// from now on, output is not sent to the client but saved in a buffer
ob_start(); 
$object->htmlmarkup1();
// get the content of the buffer into $html1 and turn off output buffering
$html1 = ob_get_clean(); 

ob_start();
$object->htmlmarkup2();
$html2 = ob_get_clean();

$json = array("html1" => $html1, "html2" => $html2);