thinkphp 3.2.3 的C()方法能修改配置文件,可是是動態修改的,沒有真正的更改文件。php
我查了網上網友分享的方法,都不怎麼合適,我就本身摸索寫了一個,配置寫到text.php中,個人目錄以下:web
代碼寫到IndexController.class.php的index方法中的(是默認的控制器),代碼以下:thinkphp
<?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', );
(>﹏<) 完成,博主親測可用。spa