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));
}
我要做的是使用json_decode
从json文件中提取现有数组,追加到该数组,然后将其重写为json文件。这本质上是试图避免将所有内容保存到一个大数组,然后在循环结束时将其全部写入,这样如果我需要取消循环,数据就不会从数组中已经经历过的部分丢失
我的问题是,由于某些原因,它只是编写数组的最新元素,比如在fopen
上执行写入模式导致file_get_contents
被覆盖。
答案 0 :(得分:0)
file_put_contents
确实存在,我认为没有理由不使用它。您没有处理任何并发问题,不执行任何锁定或其他任何需要fopen
或fwrite
的内容。