在源php中更新数组值
在php中,通常将配置数据存储在数组中,这是只读的。是否有人使实用程序能够在源代码中直接保存对数组的更改?我的意思不是将数组序列化到某个文件,而是更新读取它的源中的值 这就是我如何操作和保存配置数组的状态 在这里,我创建了一个配置数组(但假设您已经有了一个相同格式的配置数组),我编写了它。然后接下来我读入它,进行编辑并保存回文件 适应你的喜好在源php中更新数组值,php,Php,在php中,通常将配置数据存储在数组中,这是只读的。是否有人使实用程序能够在源代码中直接保存对数组的更改?我的意思不是将数组序列化到某个文件,而是更新读取它的源中的值 这就是我如何操作和保存配置数组的状态 在这里,我创建了一个配置数组(但假设您已经有了一个相同格式的配置数组),我编写了它。然后接下来我读入它,进行编辑并保存回文件 适应你的喜好 <?php function write_config($config, $path) { file_put_contents($path,
<?php
function write_config($config, $path) {
file_put_contents($path, '<?php return ' . var_export($config, true). ';');
}
function read_config($path)
{
return include $path;
}
$config_path = '/tmp/config.php';
$config = array(
'foo' => 'bar'
);
write_config($config, $config_path);
$config = read_config($config_path);
var_dump($config);
$config['foo'] = 'baz';
write_config($config, $config_path);
$config = read_config($config_path);
var_dump($config);
我通常有一个带有默认值的基本数组,还有另一个用于调整的数组,我用它来覆盖第一个数组。我使用array\u merge\u recursive将后者应用于前者。您也不会直接更新xml。您将加载xml,使用DOM引擎解析它,更新您想要的任何节点,然后导出回新的xml字符串。直接操纵配置文件是一个坏主意-如果您的代码在修改配置文件的过程中由于任何原因崩溃,您可能会损坏该文件。最好是写入一个新文件,然后在保存完成后用新文件替换原始文件。我不确定这两种方法之间是否有区别,或者为什么您认为一种是只读的,而另一种不是。在任何一种情况下,您都必须在中读取数据,然后选择将其保存回Source。这只是关于writable config的备注,我将删除这句话以防止误导。
array (size=1)
'foo' => string 'bar' (length=3)
array (size=1)
'foo' => string 'baz' (length=3)