想修改配置文件aaa.conf,内容如下:
[username]
kiyone

[password]
123

[class]
chass1
我想要修改[password]下面的123这行密码。方案采用把这两行替换成空,然后在重新把这两行写在配置文件的结尾。

$fp = fopen("aaa.conf", 'r');
$configfile = fread($fp, filesize("aaa.conf"));
fclose($fp);
//通过正则替换来做
$configfile = preg_replace("/\\n\[password\](.+?)\\n/is", "", $configfile);//本只需匹配[password]到下一空行之间的内容,只需写成/\[password\](.+?)\\n/is就行了,但是我想把这行前面的空行也去掉,所以在前面加了个\n

//把文件重新写回原来的地方
$fp = fopen("aaa.conf", 'w');
fwrite($fp, trim($configfile));
fclose($fp);
//在文件最后加入新的password两行
$newpassword = "456";
$filename="aaa.conf";//定义操作文件
$fcontent = file($filename); //file()把整个文件读入一个数组中
$fp = fopen("$filename","a");
$str = "\n\n[password]\n$newpassword";
fwrite($fp, $str);