/** * 将数组写出配置文件 * @param $arr 写入数组 * @param $filename 保存文件名 * @param $reset 是否合并 * @param $delother 删除多余 * @return bool */ function save_config($arr,$filename,$reset = false,$delother = false) { $filepath = CONF_PATH.'/extra/'.$filename.'.php'; //判断是否存在文件 if(!file_exists($filepath)){ $file = fopen($filepath,"w"); fclose($file); } $oldarr = include($filepath); //引入文件 if(is_array($oldarr)){ //将传入的数组和文件的数组做比对 foreach ($oldarr as $key => $value) { if(!isset($arr[$key])) { if(!$delother) { $arr[$key] = $value; } }else { if(!$reset) { $arr[$key] = $value; } } } } //写出文件 $str = '<?php return ['; foreach ($arr as $key => $value) { $value = htmlspecialchars($value); $str .= "'{$key}'=>'{$value}',"; } $str .= '];'; if(!file_put_contents($filepath,$str)) return false; return true; }
该函数适用基于tp5的网站设置模块,使用方法简单,别的框架也类似。
调用方法:
if(!save_config($_POST,$action,true,true)) { $this->error("保存配置失败"); } $this->success("操作成功");