php修改文件

<?php

if(isset($_POST['sub']))
{
    setConfig($_POST);
}
function setConfig($post)
{
    $zz = array();
    $rep = array();
    $str = file_get_contents("config.inc.php");
    foreach($post as $key=>$value)
    {
        $zz[] = "/define\("{$key}",\s*.*?\);/i";
        $rep[] = "define("{$key}","{$value}");";
    }
    $str = preg_replace($zz,$rep,$str);
    file_put_contents("config.inc.php",$str);
}
?><span id="more-231"></span>


<html>
<head>
<title>Install Test</title>
</head>
<body>
<form action="" method="post">
DB_USER: <input type="text" name="DB_USER">
DB_PASS: <input type="text" name="DB_PASS">
<input type="submit"  name="sub" value="change">
</form>
</body>
</html>

检测到表单提交sub变量后, 就会进入到正, 正里面是一个函数处理$_POST接收到的数组, 来到setConfig函数, 该函数提供了一个形式参数$post接收传入信息, 然后创建了两个用来匹配的空数组,再往下获取原文件内容, 然后通过foreach遍历出所有key和value, 循环第一次的时候, 第一个$zz匹配出了原文件内容($key), 第二个匹配出了传入的新内容($key $value), 然后执行替换, 因为符合正则条件,所以执行替换, 最后把替换结果写入原文件。

此条目发表在php分类目录,贴了, , 标签。将固定链接加入收藏夹。