我有一个小的place_config.php
文件。
以这个为例,我正在设置变量
<?php
//config file
$place_config = array(
'credentials' => array(
'sid' => 'some_value',
'token' => 'some_token'
)
?>
为方便起见,我想从用户的管理面板更改sid
和token
。我怎样才能有效地做到这一点。我了解的一种解决方案是,将文件的内容制成字符串,并在发布请求后放置$_REQUEST
变量,然后将整个字符串写入文件中?这是有效的方法吗?
答案 0 :(得分:1)
提交带有正确输入内容的表单以及提交的调用update_place_config()
:
function update_place_config() {
include('place_config.php');
$place_config['credentials']['sid'] = $_POST['sid'];
$place_config['credentials']['token'] = $_POST['token'];
$output = '<?php $place_config = ' . var_export($place_config, true) . '; ?>';
file_put_contents('place_config.php', $output);
return $place_config; //if you want to get the new config
}
另一个选择:
$content = file_get_contents('place_config.php');
$content = preg_replace("/('sid' =>) '[^']+'/", "$1 '{$_POST['sid']}'", $content);
file_put_contents('place_config.php', $content);
我个人将存储在数据库中,或者如果需要将其用作文件,则使用JSON。
答案 1 :(得分:0)
建议不要将配置数据存储在php文件中,而建议将其存储在json文件中,该文件可以通过php轻松读取/编辑。
创建一个json文件,例如config.json。然后,您可以使用$conf = json_decode(file_get_contents("config.json"))
加载配置。您可以更改$ conf对象,并将配置另存为file_put_contents("config.json", json_encode($conf))
。