<?php
// 生产环境不显示错误
error_reporting(0);
ini_set("display_errors", "0");

// 路由处理
$yuming = $_SERVER["HTTP_HOST"];
$erji = explode(".", $yuming);
if (count($erji) == 2) {
    $erji = "www";
} else {
    unset($erji[count($erji) - 1], $erji[count($erji) - 2]);
    $erji = implode(".", $erji);
}

$file_path = "webs/";
$filezhi = "index";
$fun = "index";

// 解析 query_string 路由
$node_url = isset($_SERVER["QUERY_STRING"]) ? $_SERVER["QUERY_STRING"] : "";
if (isset($node_url[0]) && $node_url[0] == "/") {
    $node_url = substr($node_url, 1);
}

if ($node_url != "") {
    $node_url_arr = explode("&", $node_url);
    if (!empty($node_url_arr[0])) {
        // 提取并设置GET参数
        $query_pos = strpos($node_url_arr[0], "?");
        if ($query_pos) {
            parse_str(substr($node_url_arr[0], $query_pos+1), $_new_get);
            $_GET = array_merge($_GET, $_new_get);
        }
        // 去掉问号后的参数
        if (strpos($node_url_arr[0], "?")) {
            $node_url_arr[0] = substr($node_url_arr[0], 0, strpos($node_url_arr[0], "?"));
        }
        $node_urlq = explode("/", $node_url_arr[0]);
        if (in_array($node_urlq[0], array("admin", "framework", "mobile"))) {
            $file_path = $node_urlq[0] . "/";
            if (count($node_urlq) > 1) {
                array_splice($node_urlq, 0, 1);
            }
        }
        $node_urlq_count = count($node_urlq);
        if ($node_urlq_count == 1 && $node_urlq[0] != "") {
            $filezhi = "index";
        } elseif ($node_urlq_count == 2) {
            $filezhi = $node_urlq[0];
            if ($node_urlq[1] != "") {
                $fun = $node_urlq[1];
            }
        } elseif ($node_urlq_count > 2) {
            if ($node_urlq[$node_urlq_count - 1] != "") {
                $fun = $node_urlq[$node_urlq_count - 1];
            }
            $filezhi = $node_urlq[$node_urlq_count - 2];
            for ($i = 0; $i < $node_urlq_count - 2; $i++) {
                $file_path .= $node_urlq[$i] . "/";
            }
        }
    }
}

define("ROOT", str_replace("\\", "/", dirname(__FILE__)));
// 加载配置
$urlcan = array("filezhi" => $filezhi, "fun" => $fun);
require_once "data/config.php";

// 加载公共文件
if ($file_path != "framework/" && file_exists(ROOT . "/" . $file_path . "public.php")) {
    require_once ROOT . "/" . $file_path . "public.php";
}

// 控制器文件路径（绝对路径）
$controller_file = ROOT . "/" . $file_path . $filezhi . ".php";
if (!file_exists($controller_file)) {
    die("错误");
}
require_once $controller_file;

// 实例化控制器
$class_name = "\\lxcms\\" . ucfirst($filezhi);
$lei = new $class_name($urlcan);
$lei->$fun();
