如何解决创建带换行符的数组以重写 json (json_encode)
我正在从 PHP 创建一个 json 文件,想法是始终插入数据库中的最后一条记录,该记录重写 results.json 文件
<?PHP
require_once __DIR__ . '/sql.PHP';
$system = new System();
$sql= $system->SelectLastData();
$response = array();
$posts = array();
while($row=$sql->fetch(PDO::FETCH_ASSOC))
{
$id=$row['id'];
$name=$row['name'];
$posts[] = array('id'=> $id,'name'=> $name);
}
$response['posts'] = $posts;
$fp = fopen('results.json','w');
fwrite($fp,json_encode($response,JSON_PRETTY_PRINT));
fclose($fp);
?>
到目前为止一切顺利,我获取了最新数据,将其传递给数组并将其保存在 results.json
文件中
{
"posts": [
{
"id": "50","name": "John Smith"
}
]
}
我遇到的问题是在用新的最后数据写入 results.json 文件时,它没有添加它,而是生成一个新的 results.json
文件
我想要的是你重写文件并保存一个新的数据(如示例中所示),你可以帮我解决这个问题。
示例:
{
"posts": [
{
"id": "50","name": "Charlotte Johnson"
},{
"id": "51","name": "emma Jones"
},{
"id": "52","name": "Benjamin Miller"
}
]
}
解决方法
从文件中获取现有数据。向现有数据添加新数据。保存文件。
$data = json_decode(file_get_contents('results.json'));
while($row=$sql->fetch(PDO::FETCH_ASSOC))
{
$data->posts[] = array('id'=> $row['id'],'name'=> $row['name']);
}
file_put_contents('results.json',json_encode($data,JSON_PRETTY_PRINT));
根据需要添加健全性检查。例如。如果文件还不存在。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。