用PHP更新JSON文件

用PHP更新JSON文件,php,json,Php,Json,我对JSON和PHP都很陌生,但我正在构建一个游戏,它需要一个单独的数据库来跟踪迷宫中锁上和解锁的门 我的JSON文件如下所示: { "doors": [ {"left":true, "right":false, "bottom":false}, {"left":false, "right":false, "bottom":false}, {"right":false, "bottom":false, "top":false}

我对JSON和PHP都很陌生,但我正在构建一个游戏,它需要一个单独的数据库来跟踪迷宫中锁上和解锁的门

我的JSON文件如下所示:

{ "doors": 
    [
        {"left":true, "right":false, "bottom":false}, 
        {"left":false, "right":false, "bottom":false},
        {"right":false, "bottom":false, "top":false}
    ]
}
$jsonString = file_get_contents('info.json');
$data = json_decode($jsonString);
$data["doors"][0]["right"] = true;
$newJsonString = json_encode($data);
file_put_contents('info.json', $newJsonString);
我的PHP文件如下所示:

{ "doors": 
    [
        {"left":true, "right":false, "bottom":false}, 
        {"left":false, "right":false, "bottom":false},
        {"right":false, "bottom":false, "top":false}
    ]
}
$jsonString = file_get_contents('info.json');
$data = json_decode($jsonString);
$data["doors"][0]["right"] = true;
$newJsonString = json_encode($data);
file_put_contents('info.json', $newJsonString);

我在javascript中使用ajax调用它,如果我使用
var\u dump($data)
,我可以读取该文件,但一旦我尝试编辑该文件,就会出现500错误。我觉得我很接近,但我现在真的被卡住了。如果有人能帮我,那就太好了。谢谢。

500错误是
内部服务器错误
。这通常意味着某个地方存在错误配置。调试它的最好方法是检查web服务器的错误日志,它应该告诉您它抛出500个错误的原因

另外,请注意,不带第二个
$assoc
参数的
json_decode()
返回的是一个对象而不是一个数组,因此要否决一个键,需要将其设置为对象属性:

$data->doors[0]->right = true;

500错误是
内部服务器错误
。这通常意味着某个地方存在错误配置。调试它的最好方法是检查web服务器的错误日志,它应该告诉您它抛出500个错误的原因

另外,请注意,不带第二个
$assoc
参数的
json_decode()
返回的是一个对象而不是一个数组,因此要否决一个键,需要将其设置为对象属性:

$data->doors[0]->right = true;

500错误是
内部服务器错误
。这通常意味着某个地方存在错误配置。调试它的最好方法是检查web服务器的错误日志,它应该告诉您它抛出500个错误的原因

另外,请注意,不带第二个
$assoc
参数的
json_decode()
返回的是一个对象而不是一个数组,因此要否决一个键,需要将其设置为对象属性:

$data->doors[0]->right = true;

500错误是
内部服务器错误
。这通常意味着某个地方存在错误配置。调试它的最好方法是检查web服务器的错误日志,它应该告诉您它抛出500个错误的原因

另外,请注意,不带第二个
$assoc
参数的
json_decode()
返回的是一个对象而不是一个数组,因此要否决一个键,需要将其设置为对象属性:

$data->doors[0]->right = true;

您是否通过localhost或其他服务器文件夹在var/www中运行此功能?如果是这样,web进程可能没有足够的权限写入目录

编辑: 如果您在受限制的目录(例如var/www或用户目录之外)中运行,您可以尝试使用以下方式更改您试图写入的文件的权限: (尝试将这张cd放入JSON文件所在的目录中)

(如果您是linux机器,请输入您的pw) 但请注意,这仅用于测试目的,可能会导致安全和性能问题: 有关具有文件权限的此特定安全级别的详细信息,请查看:

您是通过localhost或其他服务器文件夹在var/www中运行此功能吗?如果是这样,web进程可能没有足够的权限写入目录

编辑: 如果您在受限制的目录(例如var/www或用户目录之外)中运行,您可以尝试使用以下方式更改您试图写入的文件的权限: (尝试将这张cd放入JSON文件所在的目录中)

(如果您是linux机器,请输入您的pw) 但请注意,这仅用于测试目的,可能会导致安全和性能问题: 有关具有文件权限的此特定安全级别的详细信息,请查看:

您是通过localhost或其他服务器文件夹在var/www中运行此功能吗?如果是这样,web进程可能没有足够的权限写入目录

编辑: 如果您在受限制的目录(例如var/www或用户目录之外)中运行,您可以尝试使用以下方式更改您试图写入的文件的权限: (尝试将这张cd放入JSON文件所在的目录中)

(如果您是linux机器,请输入您的pw) 但请注意,这仅用于测试目的,可能会导致安全和性能问题: 有关具有文件权限的此特定安全级别的详细信息,请查看:

您是通过localhost或其他服务器文件夹在var/www中运行此功能吗?如果是这样,web进程可能没有足够的权限写入目录

编辑: 如果您在受限制的目录(例如var/www或用户目录之外)中运行,您可以尝试使用以下方式更改您试图写入的文件的权限: (尝试将这张cd放入JSON文件所在的目录中)

(如果您是linux机器,请输入您的pw) 但请注意,这仅用于测试目的,可能会导致安全和性能问题: 有关具有文件权限的此特定安全级别的详细信息,请查看: