一、正则表达式简介
一、什么是“正则表达式”
正则表达式---是用一些特殊字符,按规则编写出一个字符串,形成一种模式
二、“正则表达式”的作用
注意:
如果正则表达式,不和函数一起使用,则它就是一个字符串,
如果将正则表达式放到到某个函数中使用, 才能发挥出正则表达式的作用。
用到分割函数中,就可以用这个正则去分割字符串
用到替换函数中,就可以用这个正则去替换字符串
...
三、PHP中如何使用“正则表达式”?——详见“PHP手册”(Perl 兼容正则表达式函数)
二、正则应用技术点分析
1、获取$pattern:这可以在网上进行搜索(可以保存为一个"模式库")
语法格式:$pattern="/php/i";//采用类似这种语法格式
2、判断$string是否包含$pattern?
语法格式:preg_match($pattern,$string);
应用例子:
if (preg_match ("/php/i", "PHP is the web scripting language of choice.")) {
print "A match was found.";
} else {
print "A match was not found.";
}
3、遍历$string中的所有$pattern
语法格式:preg_match_all($pattern,$string,$arr);
应用例子:
function browserUrl($str) {
$url="/(https?|ftps?)://((www|mail|news).([^./]+).(com|org|net))/i";
preg_match_all($url, $str, $arr);
foreach($arr[0] as $url){
echo $url;
}
}
browserUrl();
4、将$string中的所有$pattern替换成$replacement
preg_replace($pattern,$replacement,$string);
应用例子:
function setUrl($str) {
$url="/(https?|ftps?)://((www|mail|news).([^./]+).(com|org|net))/i";
preg_replace($url,'<font color="red">1://2.3.4</font>',$str)
return $str;
}
echo setUrl($str);
三、使用正则动态修改配置文件
================================================
php基础示例--正则表达式--动态修改配置文件
================================================
一、相关的知识点:
正表达式:
preg_match_all -- 进行全局正则表达式匹配
preg_replace -- 执行正则表达式的搜索和替换
文件的读和写
file_put_contents--文件写入函数
file_get_contents()--文件读取信息函数
二、实现步骤:
1.准备好一个配置文件:dbconfig.php
2. 定义一个edit.php,配置文件信息的编辑界面
a 读取配置文件的信息
b 使用正则表达式解析配置文件的信息
c 遍历解析后的信息,并输出到修改表单中
3. 定义一个doupdate.php执行配置文件信息的修改操作
(使用正则替换方式)
三、详细代码
1.准备好一个配置文件:dbconfig.php
//配置文件信息
define("HOST","localhost"); //主机名
define("USER","root");//用户名
define("PASS","666"); //密码
define("DBNAME","mydb"); //数据库名
2. 定义一个edit.php,配置文件信息的编辑界面
//编辑配置文件
$keyinfo = array("HOST"=>"主机","USER"=>"用户","PASS"=>"密码","DBNAME"=>"库名");
//1 读取配置文件的信息
$info = file_get_contents("dbconfig.php");//将dbconfig.php文件中信息读出并赋给info变量
//2 使用正则表达式解析配置文件的信息
preg_match_all("/define("(.*?)","(.*?)")/",$info,$a); //将info中的信息解析到a变量中存储
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>";
3. 定义一个doupdate.php执行配置文件信息的修改操作
//执行配置文件的修改操作
//echo "<pre>";
//var_dump($_POST);
//echo "</pre>";
//1. 读取配置文件的信息
$info = file_get_contents("dbconfig.php");
//2.对POST遍历,并对配置文件信息进行正则替换
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>";