Revision: 42272
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at March 2, 2011 16:32 by robertnduati
Initial Code
<?php class Router { function get() { //APP_BASE_URL is a constant i set for the framwork. It is the full url to the //root folder of the framework $my_url = $this->str_replace_once(APP_BASE_URL, '', $this->getfullurl()); //This removes the query string part of the url so that it can be evaluated if($_SERVER["QUERY_STRING"]) { $my_url = $this->str_replace_once("?" . $_SERVER["QUERY_STRING"], '', $my_url); } $my_url = $this->trimTrailingSlashes($my_url); $requestURI = explode('/', $my_url); $function = $requestURI[0]; $parameters_str = ''; for($i = 1; $i < count($requestURI); $i++){ $parameters_str .= $requestURI[$i]; if($i != count($requestURI)-1) { $parameters_str .= ', '; } } //The function returns a PHP command as a string so that i can be used in eval() if($function){ return '$this->'.$function.'('.$parameters_str.');'; } else { return '$this->index();'; } } //THESE FOLLOWING FUNCTIONS ARE JUST HELPERS function str_replace_once($str_pattern, $str_replacement = '', $string){ if (strpos($string, $str_pattern) !== false){ $occurrence = strpos($string, $str_pattern); return substr_replace($string, $str_replacement, strpos($string, $str_pattern), strlen($str_pattern)); } return $string; } function trimTrailingSlashes($str){ $str = trim($str); return $str == '/' ? $str : rtrim($str, '/'); } function getfullurl(){ $s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : ""; $protocol = substr(strtolower($_SERVER["SERVER_PROTOCOL"]), 0, strpos(strtolower($_SERVER["SERVER_PROTOCOL"]), "/")) . $s; $port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]); return $protocol . "://" . $_SERVER['SERVER_NAME'] . $port . $_SERVER['REQUEST_URI']; } }
Initial URL
Initial Description
Initial Title
Routing class for tinyMvc
Initial Tags
Initial Language
PHP