逝去的青春
preg_match函数详解
2012-12-20 jao

$str='sdfasfs12333ddd12233';


preg_match('/\d\d\d/si',$str,$arr);//找三个连续数字


echo '<pre>';


print_r($arr);


echo '</pre>';


1。此函数,只会配第一个符合的值。


2。$arr[0]存其结果。




preg_match_all所有结果,故是二维数组:$arr[0][1]存放第一个结果,$arr[0][n]存放第n个结果;


$arr[1][0]存放第一个结果中的,第一个子表达式的结果,$arr[1][n]存放第n+1个结果中的,第一个子表达式的结果;


 


例子:wei静态时,最常使用的知识点


$str="111-555-666 dfs5+fsfffsd-2215affsfsdf";


preg_match('/(\d)\1{2}-(\d)\2{2}-(\d)\3{2}/si',$str,$arr);//一定要使用',不能使用“,因为存在反向捕获




第二:http://localhost/wc.php/15,23,45.html处理方法:


法一,在php中使用正则表处理;$_SERVER[PATH_INFO];


$para=$_SERVER['PATH_INFO'];


$pattern='/(\d)+/si';//有一个数字

$pattern='/\/(\d+),(\d+),(\d+)\.html$/si';

preg_match($pattern,$para,$arr);


法二,使用apache rewrite处理。