<?php // +---------------------------------------------------------------------- // | EcTouch [ 专注移动电商: 商创网络科技 ] // +---------------------------------------------------------------------- // | Copyright (c) 2014 http://ectouch.cn All rights reserved. // +---------------------------------------------------------------------- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) // +---------------------------------------------------------------------- // | Author: EcTouch Team <*****@*****.**> (QQ: 2880175560) // +---------------------------------------------------------------------- define('IN_ECTOUCH', true); // 检测PHP环境 if (version_compare(PHP_VERSION, '5.2.0', '<')) { die('require PHP > 5.2.0 !'); } // 核心框架目录,注意目录后面加"/" define('CORE_PATH', dirname(__FILE__) . '/../include/'); // 加载系统配置 require CORE_PATH . '/../data/config.php'; // 加载应用控制类 require CORE_PATH . 'kernel/EcApp.class.php'; // 实例化单一入口应用控制类 $app = new EcApp($config); // 执行项目 $app->run(); // 亲^_^ 后面不需要任何代码了 就是如此简单
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]; } } } }
function url_parse_ext() { EcApp::$module = trim($_GET['m']); EcApp::$action = trim($_GET['a']); }