【发布时间】:2013-12-08 15:42:57
【问题描述】:
所以我有一个 JSON 文件,其中包含以下格式的篮球运动员信息:
[{"name":"Lamar Patterson","team":1,"yearsLeft":0,"position":"PG","PPG":17},{"name":"Talib Zanna", "team":1,"yearsLeft":0,"position":"SF","PPG":13.1},....]
我希望用户能够将自己的自定义播放器添加到此文件中。为此,我尝试以下方法:
<?php
$json = file_get_contents('json/players.json');
$info = json_decode($json, true);
$info[] = array('name'=>$name, 'team'=>$team, 'yearsLeft'=>4, 'position'=>$position, 'PPG'=>$ppg);
file_put_contents('json/players.json', json_encode($info));
?>
这种“有点”有效。但是当我检查 JSON 文件时,我发现有 3 个新条目而不是 1 个:
{"name":"","team":null,"yearsLeft":4,"position":"","PPG":""},{"name":"","team":"3","yearsLeft":4,"position":"","PPG":""},{"name":"Jeff","team":null,"yearsLeft":4,"position":"C","PPG":"23"}
假设 $name="Jeff" $team=3 和 $ppg=23(通过 POST 提交填充)。
发生了什么,我该如何解决?
【问题讨论】:
-
你确定源文件是正确的吗?没有逗号之类的?
-
你在用ajax做POST吗?一些双击可能会触发额外的条目。只是为了确定
-
您确定没有竞争条件发生,例如多人同时添加记录?我无法重现您的问题。
$name等在哪里设置?