PHP JSON file_put_contents为空

时间:2014-07-21 12:26:32

标签: php json

这是我当前的JSON文件:

{"coins":"0","uses":"0"}    

...我用以下PHP重写了这些值:

$data = json_decode(file_get_contents('test.json'), true);
$data["coins"] = iconv($data["coins"] + $coins);
$data["uses"] = iconv($data["uses"] + 1);
file_put_contents('test.json', json_encode($data));

我已打印出$data的值,并看到它包含新值。然而,file_put_contents写入的文件总是空白。有关为何如此的任何建议?

修改

这是$data返回的内容:

Array ( [coins] => 100 [uses] => 1 )

稍微更改我的代码后,似乎file_put_contents返回false。不过,我已将文件权限设置为 777 test.json)。

1 个答案:

答案 0 :(得分:0)

以下iconv()不需要执行以下操作:

$data["coins"] = $data["coins"] + $coins;
$data["uses"] =$data["uses"] + 1;

如果转储对象,您将看到:

array(2) { ["coins"]=> string(1) "0" ["uses"]=> string(1) "0" }

它们是字符串,因为在你的json中,数字都有引号。

如果您可以投射(int)$data["coins"],但幸运的是,php足够智能,可以转换为正确的数据类型。

iconv()更多用于转换字符串编码。