================================================
php基礎(chǔ)示例--正則表達(dá)式--動(dòng)態(tài)修改配置文件
================================================
一、相關(guān)的知識(shí)點(diǎn):
正表達(dá)式:
preg_match_all -- 進(jìn)行全局正則表達(dá)式匹配
preg_replace -- 執(zhí)行正則表達(dá)式的搜索和替換
文件的讀和寫
file_put_contents--文件寫入函數(shù)
file_get_contents()--文件讀取信息函數(shù)
二、實(shí)現(xiàn)步驟:
1.準(zhǔn)備好一個(gè)配置文件:dbconfig.php
2. 定義一個(gè)edit.php,配置文件信息的編輯界面
a 讀取配置文件的信息
b 使用正則表達(dá)式解析配置文件的信息
c 遍歷解析后的信息,并輸出到修改表單中
3. 定義一個(gè)doupdate.php執(zhí)行配置文件信息的修改操作
(使用正則替換方式)
程序員,你不是一個(gè)人;網(wǎng)站開發(fā)QQ群:436471830,在線充值,或聯(lián)系QQ416148489直接充值
本案例是通過php正則表達(dá)式的匹配,替換等相關(guān)操作,實(shí)現(xiàn)對(duì)配置文件信息的動(dòng)態(tài)修改。增加了大家對(duì)正則表達(dá)式的實(shí)例應(yīng)用和理解。 ================================================ php基礎(chǔ)示例--正則表達(dá)式--動(dòng)態(tài)修改配置文件 ================================================ 一、相關(guān)的知識(shí)點(diǎn): 正表達(dá)式: preg_match_all -- 進(jìn)行全局正則表達(dá)式匹配 preg_replace -- 執(zhí)行正則表達(dá)式的搜索和替換 文件的讀和寫 file_put_contents--文件寫入函數(shù) file_get_contents()--文件讀取信息函數(shù) 二、實(shí)現(xiàn)步驟: 1.準(zhǔn)備好一個(gè)配置文件:dbconfig.php 2. 定義一個(gè)edit.php,配置文件信息的編輯界面 a 讀取配置文件的信息 b 使用正則表達(dá)式解析配置文件的信息 c 遍歷解析后的信息,并輸出到修改表單中 3. 定義一個(gè)doupdate.php執(zhí)行配置文件信息的修改操作 (使用正則替換方式) <?php //執(zhí)行配置文件的修改操作 //echo "<pre>"; //var_dump($_POST); //echo "</pre>"; //1. 讀取配置文件的信息 $info = file_get_contents("dbconfig.php"); //2.對(duì)POST遍歷,并對(duì)配置文件信息進(jìn)行正則替換 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='edit.php'>返回</a>"; <?php //編輯配置文件 $keyinfo = array("HOST"=>"主機(jī)","USER"=>"用戶","PASS"=>"密碼","DBNAME"=>"庫名"); //1 讀取配置文件的信息 $info = file_get_contents("dbconfig.php");//將dbconfig.php文件中信息讀出并賦給info變量 //2 使用正則表達(dá)式解析配置文件的信息 preg_match_all("/define\(\"(.*?)\",\"(.*?)\"\)/",$info,$a); //將info中的信息解析到a變量中存儲(chǔ) echo "<pre>"; //var_dump($a); echo "</pre>"; //3 遍歷解析后的信息,并輸出到修改表單中 echo "<h2>編輯配置文件</h2>"; echo "<form action='doupdate.php' method='post'>"; foreach($a[1] as $k=>$v){ echo "{$keyinfo[$v]}:<input type='text' name='{$v}' value='{$a[2][$k]}'/><br/><br/>"; } echo "<input type='submit' value='編輯'/> "; echo "<input type='reset' value='重置'/>"; echo "</form>";
|