0) { $qvars = explode('&', $queryString); foreach ($qvars as $qvar) { list($key, $value) = explode('=', $qvar); $_GET[$key] = $value; } $uri = str_replace('?' . $queryString, '', $uri); } //End Source Get And Read Query String In Uri //Access To Config Variables And Alias global $config; $route = $config['route']; $uri=urldecode($uri); foreach ($route as $alias => $target) { $alias='^'.$alias; $alias=str_replace('/','\/',$alias); $alias=str_replace('*','(.*)',$alias); if (preg_match('/'.$alias.'/',$uri)) { $uri = preg_replace('/'.$alias.'/', $target, $uri); } } //Limeted Php Files In Uri Request if (strhas($uri, '.php')) { message('404', true); } //Division Uri Request To Controller And Method And Params $parts = explode('/', urldecode($uri)); $controller = $parts[1];//Controller if ($controller == null) { header("Location:/"); exit; } else { if (!isset($parts[2])) { message('404', true); } $method = $parts[2];//Method if (strhas($method, '.php')) { message('404', true); } if (isset($parts[3])) { for ($i = 3; $i < count($parts); $i++) { $params[] = $parts[$i];//Params On Methods } } else { $params = array(); } //Read Controller File Class $controllerClassName = ucfirst($controller) . 'Controller'; $controllerInctance = new $controllerClassName(); if (!method_exists($controllerInctance, $method)) { message('404', true); } call_user_func_array(array($controllerInctance, $method), $params); } ?>