thinkphp3.2.3动态修改conf配置⽂件thinkphp 3.2.3 的C()⽅法能修改配置⽂件,但是是动态修改的,没有真正的更改⽂件。
我查了⽹上⽹友分享的⽅法,都不怎么合适,我就⾃⼰摸索写了⼀个,配置写到text.php中,我的⽬录如下:
thinkphp3代码写到IndexController.class.php的index⽅法中的(是默认的控制器),代码如下:
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
//⽂件路径地址
$path = 'Application/'.MODULE_NAME .'/Conf/text.php';
//thinkphp的配置⽂件是数组
//读取配置⽂件,
$file = include $path;
//这⾥获取⽤户提交上来的配置⽂件 ,例如 'WEB_NAME' => I('web_name'), 我测试⽤的静态设置
$config = array(
'WEB_NAME' => 'T博客',
'WEB_AGE' => '2333',
'WEB_TITLE' => '博客管理系统'
);
//合并数组,相同键名,后⾯的值会覆盖原来的值
$res = array_merge($file, $config);
/
/数组循环,拼接成php⽂件
$str = '<?php return array(';
foreach ($res as $key => $value){
// '\'' 单引号转义
$str .= '\''.$key.'\''.'=>'.'\''.$value.'\''.',';
};
$str .= '); ?>';
//写⼊⽂件中,更新配置⽂件
if(file_put_contents($path, $str)){
echo '保存成功!';
}else {
echo '保存失败!';
}
}
}
主要是在⽂件路径上⾯弄了很久。
最后⼀步,载⼊配置⽂件,修改Config.php,添加⼀⾏代码:
<?php
return array(
//载⼊⾃定义配置⽂件text
'LOAD_EXT_CONFIG'=>'text',
);
(>﹏<) 完成,博主亲测可⽤。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。