class discuz_core { // 数据库存储引擎 var $db = null; // 内存缓冲object var $mem = null; // 会话 object var $session = null; // 程序配置 var $config = array(); // $_G 数组的映射 var $var = array(); // 加载缓存的数组 var $cachelist = array(); // 是否初始化 var $init_setting = true; var $init_user = true; var $init_session = true; var $init_cron = true; var $init_misc = true; var $init_memory = true; var $init_mobile = true; // 是否已经初始化 var $initated = false; // 列举全局变量,为清理做准备 var $superglobal = array( 'GLOBALS' => 1, '_GET' => 1, '_POST' => 1, '_REQUEST' => 1, '_COOKIE' => 1, '_SERVER' => 1, '_ENV' => 1, '_FILES' => 1, ); /** * 建立唯一进程 * @staticvar discuz_core $object * @return discuz_core */ function &instance() { ...... } /** * 预处理的调用 */ function discuz_core() { $this->_init_env(); $this->_init_config(); $this->_init_input(); $this->_init_output(); } /** * 核心初始化 */ function init() { if(!$this->initated) { $this->_init_db(); $this->_init_memory(); $this->_init_user(); $this->_init_session(); $this->_init_setting(); $this->_init_mobile(); $this->_init_cron(); $this->_init_misc(); } $this->initated = true; } /** * 定义PHP环境信息常量和全局变量 $_G * */ function _init_env() { ...... } /** * 禁止对全局变量注入 * slashes 处理 * cookie 处理(去掉cookie前缀) * 将 $_GET 与 $_POST 合并 * */ function _init_input() { ...... } /** * 加载配置文件 * */ function _init_config() { ...... } /** * 输出处理 * GET 参数跨站检测 * 防页面刷新 * gzip处理 * 字符集处理 * */ function _init_output() { ...... } /** * 禁止机器人访问 * */ function reject_robot() { ...... } /** * GET 参数跨站检测 * * 2011-3-8 增加对 CONTENT-TRANSFER-ENCODING 代码的检测 (IE MHTML 漏洞) */ function _xss_check() { ...... } /** * 获取客户端IP * */ function _get_client_ip() { ...... } /** * 初始化数据库类,同时选择主从数据库 * */ function _init_db() { ...... } /** * 初始化session * */ function _init_session() { ...... } /** * 处理当前用户信息 * */ function _init_user() { ...... } /** * 设置当前用户为游客 * */ function _init_guest() { ...... } /** * 处理计划任务 * */ function _init_cron() { ...... } /** * 杂项 * 调入核心语言包 * 处理全局时区设置 * 处理被封禁用户 * 站点开关检查 * 手机端控制每页显示主题数和回帖数 * 判断并执行每日登录奖励积分 * */ function _init_misc() { ...... } /** * 加载全局设置 setting,风格 style,下一个任务 cronnextrun * */ function _init_setting() { ...... } /** * 处理当前界面风格 * 定义风格常量 * */ function _init_style() { ...... } /** * 初始化Discuz 内存读写引擎 * */ function _init_memory() { ...... } /** * 手机访问时的开关判断,浏览器判断和相关特性 * */ function _init_mobile() { ...... } /** * 设置时区 * @param $timeoffset - 时区数值 * @return 无 */ function timezone_set($timeoffset = 0) { ...... } /** * 手机转码的$_POST多层数组递归转码 * @param $value - 字符串 * @return 返回转义好的字符串 */ function mobile_iconv_recurrence($value) { ...... } }