php把提交的数据写入到配置文件中

php把提交的数据写入到配置文件中

在后台可以设置网站的基本信息,例如:title,keywords,copyright。等信息,这些信息只是一条数据,存入数据库耗费资源,直接写入到php文件中。

创建php文件。方便写入

我用的是laravel框架,在F:\project\redshop\resources\views\admin\set\system\website.blade.php,编辑website.blade.php。return一个array

<?php 
return array (
  'sitename' => 'layuiAdmin',
  'domain' => 'http://www.layui.com',
  'cache' => '0',
  'max_file' => '2048',
  'file_type' => 'png|gif|jpg|jpeg|zip|rar',
  'title' => 'layuiAdmin 通用后台管理模板系统',
  'keywords' => '1',
  'descript' => '网站描述',
  'copyright' => '© 2018',
);?>
后台编辑配置文件信息

小编用的是layui的后台模板,进行添加信息,代码如下:

PS:提交信息用的是layui框架自带的form.on(‘submit(‘submitSystem’)’)结合ajax提交数据。

html代码就是普通form表单,主要是js代码。

 <script src="/admin/layuiadmin/layui/layui.js"></script>
  <script src="/admin/jquery-3.2.1.js"></script>
  <script>
    $.ajaxSetup({
      headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
      }
    });
  </script>
  <script>
  layui.config({
    base: '/admin/layuiadmin/' //静态资源所在路径
  }).extend({
    index: 'lib/index' //主入口模块
  }).use(['index', 'set']);
  </script>
  <script>
    //引用layui的模块化,需要什么就加载什么
      layui.use(['form'],function(){
         var form = layui.form
             ,layer = layui.layer;
         form.on('submit(submitSystem)',function(data){
            //layer.msg(data);//data是object。layer.msg不能输出object。否则就会报错(layer.js:2 Uncaught TypeError: s.parents is not a function)
           console.log(data);
           $.ajax({
             type:'post',
             url:'/admins/system',
             dataType:'json',
             data:data.field,
             success:function(data){
                if (data.code=='1'){
                  layer.msg(data.message,{
                    icon:1
                  });
                }else{
                  layer.msg(data.message,{
                    icon:5
                  });
                }
             },
             error:function(){
               layer.msg('网络错误,稍后再试',{
                 icon:5
               });
             }
           });
         });
      });
  </script>

在这里插入图片描述
controller控制器代码:

1,file_put_contents()写入配置文件。
2,config_path() 读取config路径。

public function system(Request $request){
        if ($request->isMethod('GET')){
            //显示系统设置视图
            return  view('admin.set.system.website');
        }else{
            //对系统设置进行数据处理
            $values = $request->all();
            $rules = [
                'sitename'=>'required',
                'domain'=>'required',
                'cache'=>'required|integer',
                'max_file'=>'required|integer',
                'file_type'=>'required',
                'title'=>'required|max:30',
                'keywords'=>'required|max:200',
                'descript'=>'required|max:100',
                'copyright'=>'required'
            ];
            $message = [
              'sitename.required'=>'网站名称不能为空',
              'domain.required'=>'域名不能为空',
              'cache.required'=>'缓存时间不能为空',
              'cache.integer'=>'缓存必须填数字',
              'max_file.required'=>'最大上传文件不能为空',
              'max_file.integer'=>'最大上传文件必须为数字',
              'file_type.required'=>'文件类型不能为空',
              'title.required'=>'首页标题不能为空',
              'title.max'=>'标题长度必须在30字以内',
              'keywords.required'=>'网站关键字不能为空',
              'keywords.max'=>'网站关键字长度必须在200字以内',
              'descript.required'=>'描述不能为空',
              'descript.max'=>'描述长度必须在100字以内',
              'copyright.required'=>'版权信息不能为空',
            ];
            $validator = \Validator::make($values,$rules,$message);
            if ($validator->passes()){
                //配置信息写入webconfing.php文件
                //去除cache、title
                //$data = $request->except('cache','title');
                $data = $request->all();
                //写入文件中
                //var_export($data);
                $str = '<?php return '.var_export($data,true).';?>';//var_export($data)直接把$data数组输出,所以在在写入文件不会写入。所以在写入文件的时候失败。
                //写入到指定文件--webconfing.php
                //var_dump(config_path());打印config路径,因为webconfing.php在config配置文件夹下
                $result = file_put_contents(config_path().'/webconfing.php',$str);
                if ($result){
                    return response()->json([
                       'code'=>'1',
                       'message'=>'更新成功'
                    ]);
                }else{
                    return response()->json([
                        'code'=>'1',
                        'message'=>'更新失败'
                    ]);
                }
            }else{
                return response()->json([
                   'code'=>'0',
                   'message'=>$validator->errors()->first(),
                ]);
            }
        }
    }

通过以上的代码,就可以实现把数据写入到php文件中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值