在PHP文件中更改变量值

时间:2018-07-18 16:54:17

标签: php

我有一个小的place_config.php文件。

以这个为例,我正在设置变量

<?php

//config file
$place_config = array(
    'credentials' => array(
        'sid' => 'some_value',
        'token' => 'some_token'
    )
?>

为方便起见,我想从用户的管理面板更改sidtoken。我怎样才能有效地做到这一点。我了解的一种解决方案是,将文件的内容制成字符串,并在发布请求后放置$_REQUEST变量,然后将整个字符串写入文件中?这是有效的方法吗?

2 个答案:

答案 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))