PHP - 每次我保存到文件时旧数据都会被覆盖

时间:2016-08-18 01:31:42

标签: php serialization fwrite file-put-contents

$testarray['player1'] = $player1Plays;
$testarray['player2'] = $player2Plays;
$testarray['result'] = $result;

print_r ($testarray);

$yoyo = serialize ($testarray);

$file = 'prevdata.dat';
fopen ($file, 'w');
file_put_contents($file, trim($yoyo) . PHP_EOL, FILE_APPEND);

我正在为课堂制作小型摇滚,纸张,剪刀游戏,需要将每个动作和结果保存到文件中。这就是我到目前为止所做的工作,它将序列化数据并将其保存到文件中,但每次我再次玩游戏时,它都会写入当前文件中的数据(我以为' FILE_APPEND'是应该加上)。这里提供了完整的代码https://eval.in/624620

2 个答案:

答案 0 :(得分:1)

更改

$file = 'prevdata.dat';
fopen ($file, 'w');
file_put_contents($file, trim($yoyo) . PHP_EOL, FILE_APPEND);

$fp = fopen('prevdata.dat', 'a'); fwrite($fp, trim($yoyo));

file_put_contents('prevdata.dat', trim($yoyo), FILE_APPEND);

答案 1 :(得分:0)

使用fopen功能的正确模式很重要。你需要把指针(你可以把它想象成一个写头)放在文件的末尾,如下所示:

fopen($file, 'a');

查看文档以查看所有可能的模式。

http://php.net/manual/en/function.fopen.php