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;
    }

}