PHP file_put_contents()写入配置文件

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

(0)

相关推荐

  • 应用模式

    每个应用模式有自己的定义文件,用于配置当前模式需要加载的核心文件和配置文件,以及别名定义.行为扩展定义等等.除了模式定义外,应用自身也可以独立定义模式文件 默认情况下的应用模式是普通模式(common ...

  • layui弹窗点击右上角关闭按钮二次确认

    在使用layui弹窗时,有时关闭弹窗要进行二次确认,是否要关闭弹窗,但是在右上角关闭按钮回调默认点击之后直接关闭弹窗,并不执行回调里的代码. 而官网给出二次确认代码,使用的是浏览器自带的提示弹窗,与网 ...

  • laravel自带的auth使用captcha验证码插件

    安装captcha composer 安装 登录网址 packagist.org 查找 laravel captcha安装 注册 providers aliases 生成配置文件 修改默认文件 页面修 ...

  • 扩展配置

    扩展配置可以支持自动加载额外的自定义配置文件,并且配置格式和项目配置一样. 设置扩展配置的方式如下(多个文件用逗号分隔): // 加载扩展配置文件'LOAD_EXT_CONFIG' => 'us ...

  • 配置加载

    在ThinkPHP中,一般来说应用的配置文件是自动加载的,加载的顺序是: 惯例配置->应用配置->模式配置->调试配置->状态配置->模块配置->扩展配置-> ...

  • KineticJS教程

    作者:ysm @ iysm.net邮箱:cleverysm@gmail.com注:参考 http://www.html5canvastutorials.com/kineticjs/html5-canv ...

  • Layui 开发使用文档

    开始使用 - 入门指南 layui(谐音:类UI) 是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用.其外在极简,却又不失饱满的内在 ...

  • JS加HTML实现弹窗提示是否确认提交

    需求:当点击input按钮时候,弹出确认框,确认后提交到指定url,效果如下 分析:这里面要,引入三个库文件,如下是下载地址 layui样式文件:https://layer.layui.com/ la ...

  • layui初识

    layui 是什么? 是一个ui库 UI设计(或称界面设计)是指对软件的人机交互.操作逻辑.界面美观的整体设计.UI设计分为实体UI和虚拟UI,互联网常用的UI设计是虚拟UI,UI即User Inte ...

  • 报错无法写入是什么原因?相比office刷题常遇磕绊做不出,二级C语言的问题太好解决了!

    某同学用计算机二级C语言的考试环境--Visual Studio 2010时遇到下面问题. 问:张老师,我是跟着视频一步一步做的,这问题咋回事儿? 咋回事呢? 回答:刚才运行的程序还没关呢,无法重新生 ...

  • .Net之配置文件自定义

    dotNET跨平台 今天 以下文章来源于鹏祥 ,作者AZRNG 鹏祥分享.Net相关技术文章,一起学习一起成长 前文讲获取配置文件内容的时候,是获取默认的appsettings.json配置文件的配置 ...

  • 零收纳焦虑,这套浙江的小房子,值得写入“教科书”

    户型调整 原始户型 原始户型是三室一厅,一厨两卫,使用面积90平米左右,其中一个卫生间包含在主卧内,无法满足屋主一儿一女,一家四口的使用需求. 因为要有两间儿童房,也没办法单独设计书房. 调整后户型 ...

  • 未来15年赚钱之路已写入文件!详解“增加居民财产性收入”是何意

    未来15年赚钱之路已写入文件!详解“增加居民财产性收入”是何意

  • 教你把门禁卡写入手机里,出门不怕忘带钥匙,简单实用老人也能会

    教你把门禁卡写入手机里,出门不怕忘带钥匙,简单实用老人也能会

  • 腰椎生理曲度变直为什么要写入诊断报告?

    为什么呢? 解剖学基础 脊柱是人体运动的主轴,由多个椎体和多重关节(椎间关节和椎小关节)组成.众多肌肉和韧带紧紧围绕,并有生理弯曲,以满足脊柱的坚固性和可动性(柔韧性)其活动分三维方向和六个自由度.腰 ...

  • jackson学习之九:springboot整合(配置文件)

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 系列文章汇总 jackson学习之一:基本信息 jac ...

  • (四)Mybatis从入门到入土——别名、配置文件以及引入mapper

    这是mybatis系列第4篇.没看前文的建议先去[Java冢狐]公众号中查看前文,方便理解和掌握 别名 为什么需要使用别名? 在xml文件中有很多需要类完整的类名的地方,十分的冗长,为了减轻我们的工作 ...

  • 李白最“狂”的一首诗将自己写入诗中,成千古绝唱至今无人超越

    说到"诗仙",大家应该第一印象就会想到我国古代有名的大诗人李白,他的诗句"天生我才必有用"."我本楚狂人"等无不彰显了他放荡不羁,自由飘逸的 ...