我陷入了PHP中的json_encode()问题。
下面的简单函数试图将响应数据发送到API调用。json_encode返回null和下面的块代码
function makeResponseOK($data) {
if($data) $response['data'] = $data;
$response['meta'] = ['msg' => 'OK', 'status' => 200];
header('Content-type: application/json');
return json_encode($response, JSON_PRETTY_PRINT);
}
它在我的MAC上工作得很好。但是,当我尝试将它部署到我的Ubuntu服务器上时,json_encode()根本不起作用,json_encode()下方的任何行都被忽略。 例如:
echo 'crazy';
echo json_encode($data);
echo 'crazy';
将只输出一个 “疯狂” 给我。我也试过:
echo json_last_error_msg();
echo json_last_error();
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
但没有人给我任何结果,甚至不是一个数...
我已经完全不知道什么是要去那里,我很感激,如果你能帮助我用它!!!
另外:我的Ubuntu服务器的PHP版本是5.5.3,我使用SLIM架构,idiorm(虽然我不认为这是有关...)
您是否已经验证安装的JSON?我相信它应该列在'<?php phpinfo(); ?>'或'php -i' – Brett
'json_encode'只返回'string'或'false'。据我所知,它不会返回null。请打开*全部*错误报告(在脚本的顶部放置'error_reporting(-1);')并再次尝试。 –
显然,你的ubuntu服务器上有php 5.5。由于许可问题,PHP5.5在框中没有JSON。 – AxelPAL