0

我正在尝试的问题是关于这段代码:

<?php

    session_start();
    /* ... */

    if(!array_key_exists('entries', $_SESSION) || array_key_exists('reset', $_GET))
    {
        $_SESSION['entries'] = array();
    }

    $_SESSION['entries'][] = array("name" => $_GET["name"]);

    // json
    $json_string = json_encode($_SESSION['entries']);

    //file
    $newfile="location.json";
    $file = fopen ($newfile, "w");
    fwrite($file, $json_string);
    fclose ($file);
    ?> 

该脚本获取 te POST 变量,将它们编码为 json 格式并保存到文件中,将新条目附加到文件中。它运作良好,但是当我开始一个新会话时,文件被覆盖,并从空重新开始。

有什么帮助吗?

4

1 回答 1

2

改变模式

 $file = fopen ($newfile, "a");

'a' 只供书写;将文件指针放在文件末尾。如果该文件不存在,请尝试创建它。

Reference

选择 :

file_put_contentsFILE_APPEND AND LOCK_EX标志一起使用

该函数等同于依次调用 fopen()、fwrite() 和 fclose() 将数据写入文件。

// using the FILE_APPEND flag to append the content to the end of the file
// and the LOCK_EX flag to prevent anyone else writing to the file at same time
file_put_contents($file, FILE_APPEND | LOCK_EX);
于 2012-07-03T11:13:19.900 回答