【发布时间】:2011-02-19 03:15:02
【问题描述】:
我正在从 PHP 中的 mySQL 查询结果创建一个 JSON 字符串。但是由于某种原因,当我将结果保存到文件以进行完整性检查时,PHP“标题”函数没有附加任何内容。下面是代码:
header("Content-Type: application/json");
if(mysql_num_rows($result)){
$dataResults = '{"Data":[';
$first = true;
$row = mysql_fetch_assoc($result);
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
if($first) {
$first = false;
} else {
$dataResults = $dataResults . ',';
}
$dataResults = $dataResults . json_encode($row);
}
$dataResults = $dataResults . ']}';
} else {
$dataResults = '[]';
}
file_put_contents('/Applications/MAMP/htdocs/PHP/results.json', $dataResults);
输出看起来不错,只是缺少“Content-Type: application/json”。我做错了什么?
【问题讨论】:
-
header() 函数将标头发送到浏览器。它绝不会以任何方式将任何内容放入文件或字符串中。如果您希望文件中包含该标题,则需要将其添加到 $dataResults 字符串。
-
另外,使用 json_encode() 函数可以省去一些麻烦。 :-)
-
为什么你一半是手写 JSON 一半是使用
json_encode?为什么不构建你想要的结构然后编码整个东西?