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' => 'https://www.woailunwen.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{

//对系统设置进行数据处理 https://www.sanweie.com

$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 https://www.bz80.vip

//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文件中。

PHP file_put_contents()写入配置文件的更多相关文章

  1. Thinkphp 解决写入配置文件的方法

    在/Application/Common/Common创建function.php,然后添加以下代码: <?php /** * [writeArr 写入配置文件方法] * @param [typ ...

  2. 【代码审计】MIPCMS 远程写入配置文件Getshell

    0x00 环境准备 MIPCMS官网:https://www.mipcms.cn 网站源码版本:MIPCMS内容管理系统 V3.1.0(发布时间:2018-01-01) 程序源码下载:http://w ...

  3. IIS不能对网站添加默认文档(由于权限不足而无法写入配置文件)

    IIS7以上版本配置网站时需要手动配置网站目录的文件夹权限 增加"IIS_IUSER"用户的修改权限 但增加后仍然提示“ 由于权限不足无法写入配置文件” 通常是Web.config ...

  4. ConfigParser-- 读取写入配置文件

    基础读取配置文件   -read(filename)               直接读取文件内容 -sections()                      得到所有的section,并以列表 ...

  5. file_put_contents写入文字换行

    file_put_contents写入文字换行 注意要使用双引号 "\r\n"

  6. Python 读取写入配置文件 —— ConfigParser

    Python 读取写入配置文件 —— ConfigParser Python 读取写入配置文件很方便,可使用内置的 configparser 模块:可查看源码,如博主本机地址: “C:/python2 ...

  7. PHP使用file_put_contents写入文件的优点

    本篇文章由:http://xinpure.com/advantages-of-php-file-write-put-contents-to-a-file/ 写入方法的比较 先来看看使用 fwrite ...

  8. c#写入配置文件(text)

    1.获取当前时间 System.DateTime currentTime = new System.DateTime(); currentTime = System.DateTime.Now; 写入配 ...

  9. 【转】用 PHP 内置函数 file_put_contents 写入文件

    PHP 内置函数 file_put_contents 用于写入文件. file_put_contents 函数最简单的写法,可以只用两个参数,一个是文件路径,一个是要写入的内容,语法如下: file_ ...

  10. C#读取和写入配置文件

    使用.Net2.0中的ConfigurationManager可以方便的实现对配置app.config的读取和写入. ConfigurationManager默认没有自动载入项目,使用前必须手动添加, ...

随机推荐

  1. [JAVA/Maven/IDEA]解决JAR包冲突

    1 前言 想必这个问题,诸多同仁都遇到过. 很不凑巧,这段时间咱也屡次撞上这问题好几次了. 因此,实在是有必要说说怎么解决好这问题了0.0 2 诊断:包冲突的异常信息特征 [类定义未发现错误] NoC ...

  2. [Linux]CentOS7:创建OS用户+授予sudo权限

    1 创建OS用户+授予sudo权限 Step1 下载安装Xshell.Xftp工具 Step2 通过Xshell,远程登陆服务器root用户 Step3 使用检查用户的命令查询当前linux环境是否存 ...

  3. python:字典中遍历key对应的value值

    问题描述:python在一个字典中想要遍历某个可以对应的value值. 效果如下: 方法一:使用循环遍历所有的key,然后对比输入的值跟便利出来的key有没有相同的 constellation = [ ...

  4. 带你揭开神秘的Javascript AST面纱之Babel AST 四件套的使用方法

    作者:京东零售 周明亮 写在前面 这里我们初步提到了一些基础概念和应用: 分析器 抽象语法树 AST AST 在 JS 中的用途 AST 的应用实践 有了初步的认识,还有常规的代码改造应用实践,现在我 ...

  5. nginx 极简教程

    什么是 Nginx? Nginx (engine x) 是一款轻量级的 Web 服务器 .反向代理服务器及电子邮件(IMAP/POP3)代理服务器. 什么是反向代理? 反向代理(Reverse Pro ...

  6. odoo 开发入门教程系列-QWeb简史

    QWeb简史 到目前为止,我们的房地产模块的界面设计相当有限.构建列表视图很简单,因为只需要字段列表.表单视图也是如此:尽管使用了一些标记,如<group>或<page>,但在 ...

  7. P1350 车的放置 题解

    一.题目描述: 给你一个网格棋盘,a,b,c,d 表示了对应边长度,也就是对应格子数. 例如,当 a=b=c=d=2 时,对应了下面这样一个棋盘: 想要在这个棋盘上放 k 棋子,也就是这 k 个棋子没 ...

  8. ffmpeg音视频基础学习

    ffmpeg音视频基础学习 从去年开始了解音视频,中间也由于项目的需要,学习过ffmpeg.live555.以及QTAV框架,一直没总结过,现在大致总结下音视频中的常见词汇,后续慢慢更新添加!博客也会 ...

  9. windows 添加应用的临时签名

    我们需要给应用添加数字签名,比如沃通.DigiCert. 申请购买代码签名证书需要一段时间,或者个人开发的应用签名,所以我们需要临时证书. 打开VS-工具-命令行,下面是添加过程 1. 创建一个测试证 ...

  10. Java代码读取properties配置文件

    读取properties配置文件 package com.easycrud.utils; import java.io.IOException; import java.io.InputStream; ...