thinkphp动态修改、创建配置文件

thinkphp动态修改、创建配置文件

问题:开发中有些数据会经常访问,但是也会参与存储。调用多,修改少。所以使用配置文件的形式。

解决办法:
将数据以配置文件的形式存储,可修改,可读取

  1. 第一步, 定义数据目录
//在入口文件index.php添加文件位置,如果你添加了其它模块,就再对应的模块修改
// 定义数据目录,可更改此目录
define('CMF_DATA', CMF_ROOT . 'data/config/');
  1. 构建方法

    public function extraconfig($arr = [], $file ,$user='admin')
    {
        if (is_array($arr)) {
            $filename = $file;
						//文件位置,根据你之前的去修改
            $filepath = CMF_DATA . 'config/' . $filename.".php";
            if (!file_exists($filepath)  ) {
                if(!fopen($filepath, "w")){
                    return 'PermissionError1';
                }
            }
            if (!is_writable($filepath)) {
                return 'PermissionError2';
            }
            $conf = array();
            foreach ($arr as $key => $value) {
                $conf[$key] = $value;
            }
            $time = date('Y/m/d H:i:s');
            $str = "<?php\r\n/**\r\n * 由".$user."建立.\r\n * $time\r\n */\r\nreturn [\r\n";
            foreach ($conf as $key => $value) {
                if(is_array($value)){
                    $str.="\t'$key'=>[";
                    foreach ($value as $r) {
                        $str .= "'$r',";
                    }
                    $str = rtrim($str,',');
                    $str .= ']'."\r\n";
                } else{
                    $str .= "\t'$key' => '$value',";
                    $str .= "\r\n";
                }
            }
            $str .= '];';
            $result = file_put_contents($filepath, $str);
            if($result){
                return 'success';
            } else {
                return $result;
            }
        } else {
            return 'error';
        }
    }
  1. 使用方法
    public function index(){
        $arr = array(
            'title'       => input('title'),
            'keywords'    => input('keywords'),
            'description' => input('description'),
        );
        $user='阿力';
        $result= $this->extraconfig($arr,'seo',$user);
        if($result=='success'){
            $this->success('修改成功');
        }elseif($result=='error'){
            $this->error('修改失败,请重试');
        }
        elseif($result=='PermissionError'){
            $this->error('文件无权限,请联系管理员');
        }
    }
  1. 读取数据,这个就没啥可多说的了,直接调用thinkphp的方法即可
	//助手函数
  config("wechat.jifen.exchange",80);
  //门面
  Config::set("wechat.jifen.exchange",80);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值