PHP修改配置文件数据
所用函数file_put_contents()
直接展示示例代码
function set_config($data,$file)
{
    if (is_array($data)){
        //定义配置文件路径
        $fileurl = APP_PATH .$file.".php";
        //加载配置文件
        $string = file_get_contents($fileurl);
        foreach ($data as $key => $value) {
            //$pats = "'".$key."' => '(.*?)'";
            $pats = '/\'' . $key . '\'(.*?)\',/';
            $reps = "'". $key. "'". " => " . "'".$value ."',";
            // 正则查找并替换
            $string = preg_replace($pats, $reps, $string);
        }
        // 写入配置文件
        file_put_contents($fileurl, $string);
        return true;
    }else{
        return false;
    }
}
上述方法只能修改一维数组数据,无法修改二维数组数据。
下方示例为修改二维数组数据,前提条件配置文件需要单独存放。
function set_config_array($data,$file)
{
    if($data && $file){
        $str = "<?php\nreturn [\n";
        foreach ($data as $item=>$value){
            $arr = "[";
            foreach ($value as $key=>$list){
                $arr .= "'".$key."' => '".$list."',";
            }
            $arr .= "],\n";
            $str .= $arr;
        }
        $str .= "];";
        $filePath = APP_PATH.$file.".php";
        $res = file_put_contents($filePath, $str);
        if($res){
            return true;
        }else{
            return false;
        }
    }else{
        return false;
    }
}