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文件中。
PHP file_put_contents()写入配置文件的更多相关文章
- Thinkphp 解决写入配置文件的方法
在/Application/Common/Common创建function.php,然后添加以下代码: <?php /** * [writeArr 写入配置文件方法] * @param [typ ...
- 【代码审计】MIPCMS 远程写入配置文件Getshell
0x00 环境准备 MIPCMS官网:https://www.mipcms.cn 网站源码版本:MIPCMS内容管理系统 V3.1.0(发布时间:2018-01-01) 程序源码下载:http://w ...
- IIS不能对网站添加默认文档(由于权限不足而无法写入配置文件)
IIS7以上版本配置网站时需要手动配置网站目录的文件夹权限 增加"IIS_IUSER"用户的修改权限 但增加后仍然提示“ 由于权限不足无法写入配置文件” 通常是Web.config ...
- ConfigParser-- 读取写入配置文件
基础读取配置文件 -read(filename) 直接读取文件内容 -sections() 得到所有的section,并以列表 ...
- file_put_contents写入文字换行
file_put_contents写入文字换行 注意要使用双引号 "\r\n"
- Python 读取写入配置文件 —— ConfigParser
Python 读取写入配置文件 —— ConfigParser Python 读取写入配置文件很方便,可使用内置的 configparser 模块:可查看源码,如博主本机地址: “C:/python2 ...
- PHP使用file_put_contents写入文件的优点
本篇文章由:http://xinpure.com/advantages-of-php-file-write-put-contents-to-a-file/ 写入方法的比较 先来看看使用 fwrite ...
- c#写入配置文件(text)
1.获取当前时间 System.DateTime currentTime = new System.DateTime(); currentTime = System.DateTime.Now; 写入配 ...
- 【转】用 PHP 内置函数 file_put_contents 写入文件
PHP 内置函数 file_put_contents 用于写入文件. file_put_contents 函数最简单的写法,可以只用两个参数,一个是文件路径,一个是要写入的内容,语法如下: file_ ...
- C#读取和写入配置文件
使用.Net2.0中的ConfigurationManager可以方便的实现对配置app.config的读取和写入. ConfigurationManager默认没有自动载入项目,使用前必须手动添加, ...
随机推荐
- 有关使用druid配置多数据源多个实例数据源和配置一个实例多个库
配置多数据源有以下几个说法. 1.多数据库类同时链接mysql,oracle,mongo等等 一般这样的配置这几个数据源不会存在一个实例(机器等)上.也属于多实例数据源. 类似如下图 有的是aliyu ...
- panda之series结构
eries 结构,也称 Series 序列,是 Pandas 常用的数据结构之一,它是一种类似于一维数组的结构,由一组数据值(value)和一组标签组成,其中标签与数据值之间是一一对应的关系.Seri ...
- 【Diary】JZSC 2020 旅 游 记(迫真
Day-2 期末考试的day1. 科目是数学 政治 语文.数学25.(3)没动.政治各种抄选择题选项()语文难得写完了.作文压根不知道写的什么 Day-1 期末考试的day2. 科目是英语 物理 历史 ...
- 一天吃透MySQL面试八股文
什么是MySQL MySQL是一个关系型数据库,它采用表的形式来存储数据.你可以理解成是Excel表格,既然是表的形式存储数据,就有表结构(行和列).行代表每一行数据,列代表该行中的每个值.列上的值是 ...
- 随手记:Redis 部署到linux上面后,本地无法连接
修改redis的配置文件 redis.conf 1. bind 设置为 0.0.0.0 2. protected-mode 设置为no (也就是关闭保护模式) 3. daemonize 设置 ...
- 测试环境治理之MYSQL索引优化篇
作者:京东物流 李光新 1 治理背景 测试环境这个话题对于开发和测试同学一定不陌生,大家几乎每天都会接触.但是说到对测试环境的印象,却鲜有好评: •环境不稳定,测试五分钟,排查两小时 •基础建设不全, ...
- Java关键字以及标识符
Java中有许多关键字,关键字是什么意思呢? 我用自己的分析来表达一下吧. Java就是源自于生活的,我们都有自己的名字.所以它也会有许多的名字,每个名字都有各自不同的特性(作用),都是系统定义好的. ...
- OpenFec介绍
官网: http://openfec.org/accueil.html 1.提供的编解码器 Reed-Solomon stable codec over GF(28) ...
- define定义常量和宏
define:预处理指令 使用方法有两种 1.define定义符号 denfine定义常量 2.define定义宏 宏是有参数的,它的参数是替换 常规来说这样写define定义宏没啥问题 但是这样写 ...
- Linux 给用户赋予操作权限
赋予local目录读写权限给keesail,别的用户对这个目录没有任何权限. chown -R keesail:keesail ./local chmod 777 文件夹名称,可以把文件夹设置成所有用 ...