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