thinkphp 3.2.3 的C()方法能修改配置文件,但是是动态修改的,没有真正的更改文件。

我查了网上网友分享的方法,都不怎么合适,我就自己摸索写了一个,配置写到text.php中,我的目录如下:

代码写到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',
);

  

(>﹏<) 完成,博主亲测可用。

最新文章

  1. macOS 我的装机
  2. Javascript高性能编程-提高数据访问速度
  3. [.net 面向对象程序设计深入](3)UML——在Visual Studio 2013/2015中设计UML活动图
  4. CCF——Z字形扫描问题
  5. Android四大组件之Activity &amp; Fragement
  6. IBatis 批量插入数据
  7. 全局对象的构造函数会在main 函数之前执行
  8. VC++ operate excel
  9. SQLite入门与分析(七)---浅谈SQLite的虚拟机
  10. JNA入门实例
  11. 採集和输出 DeckLink Studio 4K
  12. libimobiledevice命令
  13. spring boot 登录注册 demo (四) -- 体验小结
  14. Spring Boot初探之restful服务发布
  15. (一)jdk8学习心得之遍历
  16. .net core ef 通过dbfirst方式连接mysql数据库
  17. H5的缓存 manifest
  18. case insensitive in php
  19. 165. Compare Version Numbers (String)
  20. Linux内核分析第三周总结

热门文章

  1. 详解Paint的setXfermode(Xfermode xfermode)
  2. HTML5之新增的元素
  3. Oracle数据行拆分多行
  4. 5-3 bash脚本编程之二 条件判断
  5. android 设颜色透明值
  6. 【FLUENT案例】06:与EDEM耦合计算
  7. JavaSript模块规范 - AMD规范与CMD规范介绍
  8. Neural Pathways of Interaction Mediating the Central Control of Autonomic Bodily State 自主神经系统-大脑调节神经通路
  9. iOS 解决LaunchScreen中图片加载黑屏问题
  10. [LeetCode] Count of Smaller Numbers After Self 计算后面较小数字的个数