Example #1
0
File: Router.php Project: h1soft/h
 private function _rewrite()
 {
     //读取伪静态规则
     $requestUri = $_SERVER['REQUEST_URI'];
     $rewrites = Config::get('router.rewrite');
     //        $requestUri = str_replace($this->suffix, '', $requestUri);
     foreach ($rewrites as $rewrite => $value) {
         $rewrite = str_replace('/', '\\/', $rewrite);
         $requestUri = str_replace(Application::basePath(), '', $requestUri);
         //            echo $rewrite;
         if (preg_match("/{$rewrite}/i", $requestUri, $paramValues)) {
             //                print_r($paramValues);
             //                die;
             $paramNum = 0;
             if (preg_match_all("/{[0-9]}/", $value, $paramNumRs)) {
                 if (isset($paramNumRs[0])) {
                     $paramNum = count($paramNumRs[0]);
                 }
             }
             if ($paramNum + 1 == count($paramValues)) {
                 $paramValues = array_slice($paramValues, 1);
             } else {
                 continue;
             }
             $patterns = array();
             $replacements = array();
             foreach ($paramValues as $key => $val) {
                 $patterns[] = "/\\{{$key}\\}/";
                 $replacements[] = $val;
             }
             $_GET['r'] = preg_replace($patterns, $replacements, $value);
         }
     }
 }
Example #2
0
File: Request.php Project: h1soft/h
 public function baseUrl()
 {
     return Application::basePath();
 }