从外部文件替换数组中的键并将其写回

Replace key in array from external file and write it back

我在文件中有一个数组,我想从中更改一个值并将其像原始文件一样写回文件。

我的数组文件:

return [
    'modules' => [
        'test-module1'      => 1,
        'test-module2'      => 1,
    ],
];

我想替换一个值(数字)并用 PHP(如果可能的话)像这样将它写回一个文件。

例如我想禁用 test-module1 并将密钥设置为 0。什么是最好的方法。我暂时没有计划。

编辑:我知道如何更改密钥,但我不知道如何将其写回文件。

我用 JSON 来做这个。但是,如果您受限于此格式,则它 returns 是一个数组。只需包含、修改和写入:

$result = include('path/to/file.php');
$result['modules']['test-module1'] = 0;

但要获得那种格式会很困难。你会得到另一种数组格式 var_export():

file_put_contents('path/to/file.php', 'return ' . var_export($result, true) . ';');    

产量:

return array (
  'modules' =>
  array (
    'test-module1' => 0,
    'test-module2' => 1,
  ),
);

然而,json_encode($result, JSON_PRETTY_PRINT); 将产生:

{
    "modules": {
        "test-module1": 0,
        "test-module2": 1
    }
}

然后您可以从那里使用 file_get_contents()json_decode()。不需要 return.