/** * 解析url成pathinfo形式,并获取参数 * http://www.herosphp.my/admin/member-login-index.html?id=12 */ public function parseURL() { $webApp = WebApplication::getInstance(); //获取系统配置信息 $sysConfig = $webApp->getConfigs(); self::$urlMappingRules = $sysConfig['url_mapping_rules']; //优先处理短链接映射 $this->requestUri = self::url2source($this->requestUri); $_SERVER['REQUEST_URI'] = $this->requestUri; $defaultUrl = $sysConfig['default_url']; $urlInfo = parse_url($this->requestUri); echo "\n-----------"; echo " class: " . __CLASS__ . " method: " . __METHOD__ . "\n"; echo " file:" . __FILE__ . "\n"; print_r(array("urlInfo" => $urlInfo)); if ($urlInfo['path'] && $urlInfo['path'] != '/') { $filename = str_replace(EXT_URI, '', $urlInfo['path']); $filename = rtrim($filename, "/"); $pathInfo = explode('/', $filename); array_shift($pathInfo); print_r(array("pathInfo" => $pathInfo)); if ($pathInfo[0]) { $this->setModule($pathInfo[0]); } if ($pathInfo[1]) { $this->setAction($pathInfo[1]); } if ($pathInfo[2]) { $this->setMethod($pathInfo[2]); } //提取pathinfo参数 if (count($pathInfo) > 3) { if (isset($pathInfo[3])) { $params = explode('-', $pathInfo[3]); for ($i = 0; $i < count($params); $i++) { if ($i % 2 == 0) { if (trim($params[$i]) == '') { continue; } $_GET[$params[$i]] = $params[$i + 1]; } } } } echo "-----------\n"; //提取query参数 if (isset($urlInfo['query'])) { $params = explode('&', $urlInfo['query']); foreach ($params as $values) { $__p = explode('=', $values); if (trim($__p[0]) == '') { continue; } $_GET[$__p[0]] = $__p[1]; } } } //如果没有任何参数,则访问默认页面。如http://www.herosphp.my这种格式 if (!$this->module) { $this->setModule($defaultUrl['module']); } if (!$this->action) { $this->setAction($defaultUrl['action']); } if (!$this->method) { $this->setMethod($defaultUrl['method']); } $this->setParameters($_GET + $_POST); //die(); }
/** * 解析url成pathinfo形式,并获取参数 * http://www.herosphp.my/admin/member-login-index.html?id=12 */ public function parseURL() { $appConfigs = getConfigs(); //获取app配置 self::$urlMappingRules = $appConfigs['url_mapping_rules']; //优先处理短链接映射 $this->requestUri = self::url2source($this->requestUri); $_SERVER['REQUEST_URI'] = $this->requestUri; $defaultUrl = $appConfigs['default_url']; $urlInfo = parse_url($this->requestUri); if ($urlInfo['path'] && $urlInfo['path'] != '/') { $filename = str_replace(EXT_URI, '', $urlInfo['path']); $filename = rtrim($filename, "/"); $pathInfo = explode('/', $filename); array_shift($pathInfo); if ($pathInfo[0]) { $this->setModule($pathInfo[0]); } if ($pathInfo[1]) { $this->setAction($pathInfo[1]); } if ($pathInfo[2]) { $this->setMethod($pathInfo[2]); } //提取pathinfo参数 if (count($pathInfo) > 3) { if (isset($pathInfo[3])) { $params = explode('-', $pathInfo[3]); for ($i = 0; $i < count($params); $i++) { if ($i % 2 == 0) { if (trim($params[$i]) == '') { continue; } $_GET[$params[$i]] = $params[$i + 1]; } } } } //提取query参数 if (isset($urlInfo['query'])) { $params = explode('&', $urlInfo['query']); foreach ($params as $values) { $__p = explode('=', $values); if (trim($__p[0]) == '') { continue; } $_GET[$__p[0]] = $__p[1]; } } } //如果没有任何参数,则访问默认页面。如http://www.herosphp.my这种格式 if (!$this->module) { $this->setModule($defaultUrl['module']); } if (!$this->action) { $this->setAction($defaultUrl['action']); } if (!$this->method) { $this->setMethod($defaultUrl['method']); } $this->setParameters($_GET + $_POST); //die(); }