Example #1
0
 /**
  * 解析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();
 }