You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP使用json_encode返回数据前多出Array字符串的问题如何解决?

问题原因

json_encode 本身不会在返回结果前添加 Array 前缀,该字符串是你代码中其他位置的额外输出导致的。

排查解决步骤

  • 第一步:检查所有业务代码(包括引入的公共文件、数据库操作文件)中是否残留调试输出语句,比如直接 echo $response(PHP 中直接输出数组会默认返回字符串Array)、print_r($response)、var_dump($response) 等,这类语句的输出会拼接到 JSON 响应前。
  • 第二步:临时注释掉日志函数 function_to_log_response_to_server 的调用,测试接口返回是否正常。部分日志函数除了写文件操作外,可能残留调试输出逻辑,也会导致多余内容输出。
  • 第三步:在输出 JSON 前清空输出缓冲区并立即终止程序运行,修改代码如下:
<?php
header('Content-Type: application/json');

/*
所有和数据库交互、构建响应数据的代码
*/

function_to_log_response_to_server(json_encode($response));
ob_clean(); // 清空之前所有的输出缓冲区内容
echo json_encode($response);
exit; // 输出完成后直接终止程序,避免后续代码输出多余内容
?>

如果修改后响应正常,就可以确认是前面代码存在多余输出,再逐段排查定位具体的输出位置即可。

内容的提问来源于stack exchange,提问作者Gavin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 22:57:03