douxian6086 2016-02-28 19:54
浏览 119

file_get_contents被fopen写入模式覆盖

function json_file_append($array, $file)
{
    $fo = file_get_contents($file);
    $ar = json_decode($fo, true);
    if (!is_array($ar)) {
        $ar = $array;
    } else {
        $ar = array_unique(array_merge($ar, $array));
    }

    fwrite(fopen($file, 'w+'), json_encode($ar, JSON_PRETTY_PRINT));
}

what i'm trying to do is pull an existing array from a json file using json_decode, append to that array, then rewrite it to the json file. this is essentially trying to avoid saving everything to one big array and then writing it all at the end of the loop so if I need to cancel the loop, data won't be lost from the parts of the array i've already gone through


my problem is that for some reason it's only writing the most recent element of the array, like doing the write-mode on fopen is causing file_get_contents to be overwritten.

  • 写回答

1条回答 默认 最新

  • drne47241 2016-02-28 20:25
    关注

    file_put_contents does exist, and I see no reason not to use it. You are not dealing with any concurrency issues, don't do any locking, or anything else that requires fopen or fwrite.

    评论

报告相同问题?

悬赏问题

  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP