您当前的位置: 首页 > 学无止境 > 网站建设 网站首页网站建设
php中正则表达式与伪静态
发布时间:2015-10-13 07:55:37编辑:雪饮阅读()
先看看正则表达式匹配函数preg_match函数的几个用法:
<?php
$str="adadsd1234DFSDFgsdb4000";
//i:不区分大小写正则模式
//s:点号元字符匹配所有字符包括换行符
//$arr:匹配结果
//preg_match函数中若出现反向捕获如(\d)\1{2}匹配的是3个连续的数字且每个数字相同,这种匹配模式就是反向捕获,而反向捕获时正在匹配规则中是不能用户双引号的
//preg_match:只匹配一个结果就退出,preg_match_all则匹配所有结果
//arr数组下标为1的就匹配第一个子表达式,以此类推,下标为n的就匹配第n个表达式
//需求:找到所有连续的4个数字
preg_match("/(\d)(\d)(\d)(\d)/si",$str,$arr);
echo "<pre>";
print_r($arr);
echo "</pre>";
preg_match_all("/(\d)(\d)(\d)(\d)/si",$str,$arr);
echo "<pre>";
print_r($arr);
echo "</pre>";
//需求:找到连续的3个数(且每个值相同)
$str="222-333-444adadas";
preg_match('/(\d)\1{2}-(\d)\2{2}-(\d)\3{2}/si',$str,$arr);
echo "<pre>";
print_r($arr);
echo "</pre>";
?>
接下来看看正则表达式运用于伪静态的案例:
<?php
header("Content-type:text/html;charset=utf-8;");
$parameters=$_SERVER["PATH_INFO"];
//正则:
//\d+:匹配一个或多个数字
if(preg_match("/^\/(\d+).(\d+).(\d+)\.html$/si",$parameters,$arr)){
echo $arr[1]."<br/>";
echo $arr[2]."<br/>";
echo $arr[3]."<br/>";
}
else{
echo "地址出错";
}
/*
echo "<pre>";
print_r($arr);
echo "</pre>";*/
?>
然后通过地址栏访问如下格式即可看到伪静态的效果:
http://localhost/item2/content.php/2,1113,345.html
关键字词:正则表达式,伪静态
上一篇:使用php缓存机制-页面静态化
下一篇:apache在控制台中的常用命令
相关文章
-
无相关信息