PHP file_put_contents()写入配置文件
阅读原文时间:2023年08月25日阅读:13

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

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

创建php文件。方便写入

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

'layuiAdmin', 'domain' => '[https://www.woailunwen.com](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代码。

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