【thinkphp】动态更新数据库配置

更新数据库配置, (事例基于t p5.0)

 //更新数据库配置
    public function update_dbconfig()
    {   
        $dbConfig = [
            'type'            => 'mysql',
            'hostname'        => 'localhost',
            'database'        => 'laofan',
            'username'        => 'root',
            'password'        => 'root',
            'hostport'        => '3306',
        ];
           try {
                //读取系统配置内容
                $dbconfig_path = APP_PATH . 'database.php';
                $site_conf = htmlentities(file_get_contents($dbconfig_path));
                //替换配置项
                foreach ($dbConfig as $key => $value) {
                    $pats = '/\'' . $key . '\'(.*?)\',/';
                    $reps = "'". $key. "'". "			=> " . "'".$value ."',";
                    $site_conf = preg_replace($pats, $reps, $site_conf); // 正则查找然后替换
                }
                if (!file_exists($dbconfig_path)) {
                    mkdir($dbconfig_path, 0777, true);
                }
                $result = file_put_contents($dbconfig_path, stripslashes(htmlspecialchars_decode($site_conf)));    
            } catch (\Exception $e) {
                return json(['staus'=>'1','message'=>'配置文件更新失败']); 
            }
            return json(['staus'=>'2','message'=>'配置文件更新完成']); 
      
    }

亲测可用!

posted @ 2020-02-12 22:14  依然范儿特西  阅读(778)  评论(0编辑  收藏  举报