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