Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在源php中更新数组值_Php - Fatal编程技术网

在源php中更新数组值

在源php中更新数组值,php,Php,在php中,通常将配置数据存储在数组中,这是只读的。是否有人使实用程序能够在源代码中直接保存对数组的更改?我的意思不是将数组序列化到某个文件,而是更新读取它的源中的值 这就是我如何操作和保存配置数组的状态 在这里,我创建了一个配置数组(但假设您已经有了一个相同格式的配置数组),我编写了它。然后接下来我读入它,进行编辑并保存回文件 适应你的喜好 <?php function write_config($config, $path) { file_put_contents($path,

在php中,通常将配置数据存储在数组中,这是只读的。是否有人使实用程序能够在源代码中直接保存对数组的更改?我的意思不是将数组序列化到某个文件,而是更新读取它的源中的值

这就是我如何操作和保存配置数组的状态

在这里,我创建了一个配置数组(但假设您已经有了一个相同格式的配置数组),我编写了它。然后接下来我读入它,进行编辑并保存回文件

适应你的喜好

<?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)