thinkphp 3.2.3 動態修改conf配置文件


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',
);

  

(>﹏<) 完成,博主親測可用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM