0

我有一个带有以下原型的文件

<?php
$config['some_key']='some_value';
$config['some_other_key']='some_other_value';

//End of file config.php

我有一个文件可以获取这些变量的值并将其显示给管理员,然后如果他愿意,他会更改其中的一些设置。所以我必须更新 config.php 文件才能保存更改。例如some_value必须更改为new_value这样:

<?php
$config['some_key']='new_value';
$config['some_other_key']='some_other_value';

//End of file config.php

我进行了一些研究,发现我的一个选择是使用file_get_contents()读取文件preg_replace()来应用我的更改再次写入文件,但我不知道如何为我的目的制作模式和替换。我真的很感谢你们的任何帮助,在此先感谢。

4

1 回答 1

0

如果您不介意文件格式发生变化,您可以使用var_export(). 此函数将以如下格式导出您的$config变量:

array (
     'some_key' => 'some_value',
     'some_other_key' => 'some_other_value',
)

在管理页面发布更改的代码部分中,您可以执行以下操作:

// load in the config file
include 'config.php'; 
// now you will have a local $config variable from the file

// update the config array with the data posted by the user
foreach ($_POST['changes'] as $key => $value) {
    $config[$key] = $value;
}
// write the $config variable back to the file
file_put_contents('config.php', '$config = '.var_export($config, true));

当然,让用户直接在您的应用程序中编写可执行代码会对恶意用户产生可怕的安全隐患。

于 2013-07-04T17:44:50.837 回答