我正在尝试的问题是关于这段代码:
<?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);
?>
脚本获取POST变量,以json格式对其进行编码并保存到文件中,将新条目附加到文件中。 它运行良好,但是当我开始一个新的会话时,该文件被覆盖,并从空重新开始。
任何帮助?
答案 0 :(得分:2)
更改模式
$file = fopen ($newfile, "a");
'a'仅限写作;将文件指针放在。的末尾 文件。如果该文件不存在,请尝试创建它。
将file_put_contents
与 FILE_APPEND 和 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);