Esempio n. 1
0
 private function _parseUrl()
 {
     $script_name = $_SERVER["SCRIPT_NAME"];
     //获取当前文件的路径
     $url = $_SERVER["REQUEST_URI"];
     //获取完整的路径,包含"?"之后的字符串
     //去除url包含的当前文件的路径信息
     if ($url && @strpos($url, $script_name, 0) !== false) {
         $url = substr($url, strlen($script_name));
     } else {
         $script_name = str_replace(basename($_SERVER["SCRIPT_NAME"]), '', $_SERVER["SCRIPT_NAME"]);
         if ($url && @strpos($url, $script_name, 0) !== false) {
             $url = substr($url, strlen($script_name));
         }
     }
     //第一个字符是'/',则去掉
     if ($url[0] == '/') {
         $url = substr($url, 1);
     }
     //去除问号后面的查询字符串
     if ($url && false !== ($pos = @strrpos($url, '?'))) {
         $url = substr($url, 0, $pos);
     }
     //去除后缀
     if ($url && ($pos = strrpos($url, $this->appConfig['URL_HTML_SUFFIX'])) > 0) {
         $url = substr($url, 0, $pos);
     }
     $flag = 0;
     //获取模块名称
     if ($url && ($pos = @strpos($url, $this->appConfig['URL_MODULE_DEPR'], 1)) > 0) {
         self::$module = substr($url, 0, $pos);
         //模块
         $url = substr($url, $pos + 1);
         //除去模块名称,剩下的url字符串
         $flag = 1;
         //标志可以正常查找到模块
     } else {
         //如果找不到模块分隔符,以当前网址为模块名
         self::$module = $url;
     }
     $flag2 = 0;
     //用来表示是否需要解析参数
     //获取操作方法名称
     if ($url && ($pos = @strpos($url, $this->appConfig['URL_ACTION_DEPR'], 1)) > 0) {
         self::$action = substr($url, 0, $pos);
         //模块
         $url = substr($url, $pos + 1);
         $flag2 = 1;
         //表示需要解析参数
     } else {
         //只有可以正常查找到模块之后,才能把剩余的当作操作来处理
         //因为不能找不到模块,已经把剩下的网址当作模块处理了
         if ($flag) {
             self::$action = $url;
         }
     }
     //解析参数
     if ($flag2) {
         $param = explode($this->appConfig['URL_PARAM_DEPR'], $url);
         $param_count = count($param);
         for ($i = 0; $i < $param_count; $i = $i + 2) {
             $_GET[$i] = $param[$i];
             if (isset($param[$i + 1])) {
                 if (!is_numeric($param[$i])) {
                     $_GET[$param[$i]] = $param[$i + 1];
                 }
                 $_GET[$i + 1] = $param[$i + 1];
             }
         }
     }
 }
Esempio n. 2
0
function url_parse_ext()
{
    EcApp::$module = trim($_GET['m']);
    EcApp::$action = trim($_GET['a']);
}