php无刷新更新config文件

本用例包含3个文件:index.php、config.php、update_process.php

1、index.php

     主要功能:负责显示config.php中的数据信息,并可供修改。

     包含技术:

         1)$.ajax

    2)data = eval('({'+data.trim(',')+'})'); json格式字符串转换成json对象

   源码:

 1 <html>
 2 <head>
 3     <title>config 文件更新</title>
 4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5     <meta http-equiv="Content-Language" content="zh-CN" />
 6     <script type="text/javascript" src="https://files.cnblogs.com/Zjmainstay/jquery-1.6.2.min.js"></script>
 7 </head>
 8 <body>
 9 
10 <?php
11     header("Content-type: text/html; charset=utf-8");
12 
13     //获取config.php数据
14     ob_start();
15     include('config.php');
16     $configData = ob_get_contents();
17     ob_clean();
18     eval($configData); //执行config.php中的变量
19 
20     foreach($config as $key => $value){
21         echo "key:<input type='text' value='{$key}' disabled='disabled'/>  value:<input class='input' id='{$key}' type='text' value='{$value}'/><br/>";
22     }
23     echo '<input type="button" value="保存" id="Save"/>';
24     echo '<div id="feedback"></div>';
25 ?>
26 <script type="text/javascript">
27 $(document).ready(function(){
28     $("#Save").click(function(){
29         var inputs = $(".input");
30         var data = '';
31         $.each(inputs,function(i,input){
32             //拼接json格式字符串
33             data += '"' + $(input).attr('id') + '":"' + $(input).val() + '",';
34         });
35         //字符串转换成json
36         data = eval('({'+data.trim(',')+'})');
37         $.ajax({
38             url:'update_process.php',
39             type:'POST',
40             data:data,
41             success:function(result){
42                 $("#feedback").hide().empty().append(result).toggle(1000);
43                 setTimeout('$("#feedback").toggle(1000)',2000);
44             },
45             error:function(msg){
46                 alert('Error!'+msg);
47             }
48         });
49     });
50 });
51 </script>
52 </body>
53 </html>

2、config.php

   数据文件。

   数据内容:

1 $config['a_a']='a1';
2 $config['a_b']='a2';
3 $config['a_c']='a3';


3、update_process.php

  主要功能:负责接收ajax上传数据并更新config.php,反馈更新成功与否信息。

  源码: 

 1 <?php
 2     if(empty($_POST)) {
 3         echo 'Post empty data!';
 4     }
 5     
 6     ob_start();
 7     include('config.php');
 8     $configData = ob_get_contents();
 9     ob_clean();
10     eval($configData);
11     
12     $data = '';
13     foreach($config as $key => $value){
14         //以config.php中的变量为标准,POST值存在则更新,否则保留config.php中的变量值。
15         if(isset($_POST[$key])) $data .= "\$config['{$key}']='{$_POST[$key]}';\n";
16         else $data .= "\$config['{$key}']='{$value}';\n";
17     }
18     
19     file_put_contents('config.php',$data);
20     echo 'Success Updated!';
21 //End_php

 软件包下载:config文件无刷新更新源码

演示地址:config文件无刷新更新演示

作者:Zjmainstay
         
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息
原文地址:https://www.cnblogs.com/Zjmainstay/p/php_update_config_file.html