包含 正则 标签的文章

VgotFaster 路由转换功能

今天给我的 VgotFaster 框架增加了路由转换功能,特记录一下,写下方法中的核心部分。

下面是路由中的配置:

  1. $routes = array(  
  2.     'readid/(\d+).html' => 'test/route/readid/$1' 
  3. ); 

路由类中转换方法核心部分:

  1. preg_match_all("|^$exp$|",$uri,$export,PREG_SET_ORDER);  
  2.  
  3. if(isset($export[0]) and count($export[0]) > 1) {  
  4.     unset($export[0][0]);  //卸载解释出的原值,preg_match_all [0][0] 为匹配的原值,之后为匹配出的值  
  5.       
  6.     $replace = $replaceTo = array();  
  7.     foreach($export[0] as $key => $replaceVal) {  
  8.         $replace[] = '$'.$key;  //$1  
  9.         $replaceTo[] = $replaceVal;  
  10.     }  
  11.     return $route = str_replace($replace,$replaceTo,$route);  
  12.       

最主要是依靠 preg_match_all 进行正则匹配并且解出其中的值,然后使用 str_replace 对 $1、$2.. 进行替换。

就是这么简单。

Pader 2009-9-26 0