PHP经典实例教程(使用正则动态修改配置文件)

1、配置文件

<?php
	//配置文件信息
	define("HOST","127.10.0.1");//主机名
	define("USER","xiuxiu");//用户名
	define("PASS","123456");//密码
	define("DBNAME","student");//数据库名
	define("PAGESIZE","10");//页大小
?>

2、编辑界面

<?php
	$keyinfo=array("HOST"=>"主机名","USER"=>"用户名","PASS"=>"密码","DBNAME"=>"数据库名","PAGESIZE"=>"页大小");


	//读取配置文件的信息
	$info=file_get_contents("dbconfig.php");//读取配置文件到变量中


	//使用正则表达式解析配置文件的信息
	preg_match_all("/define\(\"(.*?)\",\"(.*?)\"\)/",$info,$aa);//将$info中的信息解析到$aa中存储

	//var_dump($aa);


	//遍历解析后的信息,并输出到修改表单中
	echo "<h2>编辑配置文件</h2>";
	echo "<form action='edit.php' method='post'>";
	foreach($aa[1] as $k=>$v){
		echo "{$keyinfo[$v]}:<input type='text' name='{$v}' value='{$aa[2][$k]}'><br/><br/>";
	}
	echo "<input type='submit' value='提交'>    ";
	echo "<input type='reset' value='重置'>";
	echo "</form>";
?>

  

3、执行编辑界面

<?php
	//执行配置文件的修改操作
	//var_dump($_POST);


	//1、读取配置文件的信息
	$info=file_get_contents("dbconfig.php");	


	//2、对post遍历,并对配置文件信息进行正则替换
	//preg_replace(正则匹配规则,正则要替换的信息,文件内容)
	foreach($_POST as $k=>$v){
		$info=preg_replace("/define\(\"{$k}\",\".*?\"\)/","define(\"{$k}\",\"{$v}\")",$info);
	}

	//3、将替换后的信息写回到配置文件中
	file_put_contents("dbconfig.php",$info);
	echo "<h2>修改成功!</h2>";
	echo "<a href='one.php'>返回</a>";
?>

 该操作,主要是用于后台配置修改

原文地址:https://www.cnblogs.com/angelgril/p/3115311.html