php实现动态修改配置文件

来源:互联网 发布:韩国冒险岛 数据库 编辑:程序博客网 时间:2024/06/05 19:45

在网站的后台中经常会遇到修改网站的配置信息,因为每次都要进行手工的修改,感觉很麻烦,所以就用php在网页中直接修改,,方便多了。。首先新建一个配置文件config.php内容如下

1<?php
2//配置文件
3define("HOST","localhost");//主机
4define("USER","wangjian");//用户名
5define("PASS","wangjian");//密码
6define("DB","123");//数据库
index.php文件如下

01<?php
02 
03$info = (file_get_contents("config.php"));//这个地方需要把<?php 给去掉否则是无法进行得到值的
04preg_match_all("#define\(\"(.*?)\",\"(.*?)\"\)#",$info,$a);//其中?是为了避免贪婪匹配,只匹配下一个“号为止 #是分节符
05 
06 
07$array array(
08    'HOST'=>'主机名',
09    'USER'=>'用户',
10    'PASS'=>'密码',
11    'DB'=>'数据库',
12     
13);
14 
15if(isset($_POST['sub'])){
16    //修改文件
17    $info file_get_contents("config.php");
18   foreach($_POST as $k=>$v){
19        $info = preg_replace("#define\(\"{$k}\",\".*?\"\)#","define(\"{$k}\",\"{$v}\")",$info);
20    }
21    //在实际的项目中还要判断文件是否可读和可写
22    file_put_contents("config.php",$info);
23    header("Location:./index.php");
24}
25?>
26 
27<form method="post" name="" action="">
28<?php
29 
30    foreach($a[0] as $k=>$v){
31?>       
32     
33 
34    <?php echo $array[$a[1][$k]];?>:<input type="text" name="<?php echo $a[1][$k];?>" value="<?php echo $a[2][$k];?>"><br />
35<?php }  ?>
36 
37    <input type="submit" value="修改" name="sub">
38 
39</form>
1用到的知识点主要是正则表达式,和文件的读写

转自:http://wangjian84075041.blog.163.com/blog/static/1867033802012921103611/

1 0
原创粉丝点击