【phpcms-v9】phpcms-v9中url路由规则文件分析:phpcms/libs/classes/param.class.php

来源:互联网 发布:系统空间数据被损坏 编辑:程序博客网 时间:2024/04/29 11:53
<?php/** *  param.class.php参数处理类 * * @copyright(C) 2005-2012 PHPCMS * @licensehttp://www.phpcms.cn/license/ * @lastmodify2012-9-17 */class param {//路由配置private $route_config = '';public function __construct() {if(!get_magic_quotes_gpc()) {//如果为开启状态,则会自动在特殊字符前添加反斜线进行转义$_POST = new_addslashes($_POST);//对$_POST中的特殊字符前添加反斜线进行转义$_GET = new_addslashes($_GET);//对$_GET中的特殊字符前添加反斜线进行转义$_REQUEST = new_addslashes($_REQUEST);//对$_REQUEST中的特殊字符前添加反斜线进行转义$_COOKIE = new_addslashes($_COOKIE);//对$_COOKIE中的特殊字符前添加反斜线进行转义}//默认的路由规则:'default'=>array('m'=>'content', 'c'=>'index', 'a'=>'init')$this->route_config = pc_base::load_config('route', SITE_URL) ? pc_base::load_config('route', SITE_URL) : pc_base::load_config('route', 'default');//默认情况下不执行下面代码段if(isset($this->route_config['data']['POST']) && is_array($this->route_config['data']['POST'])) {foreach($this->route_config['data']['POST'] as $_key => $_value) {if(!isset($_POST[$_key])) $_POST[$_key] = $_value;}}if(isset($this->route_config['data']['GET']) && is_array($this->route_config['data']['GET'])) {foreach($this->route_config['data']['GET'] as $_key => $_value) {if(!isset($_GET[$_key])) $_GET[$_key] = $_value;}}if(isset($_GET['page'])) {$_GET['page'] = max(intval($_GET['page']),1);$_GET['page'] = min($_GET['page'],1000000000);}return true;//最终返回true}/** * 获取模型 */public function route_m() {$m = isset($_GET['m']) && !empty($_GET['m']) ? $_GET['m'] : (isset($_POST['m']) && !empty($_POST['m']) ? $_POST['m'] : '');$m = $this->safe_deal($m);if (empty($m)) {return $this->route_config['m'];} else {if(is_string($m)) return $m;}}/** * 获取控制器 */public function route_c() {$c = isset($_GET['c']) && !empty($_GET['c']) ? $_GET['c'] : (isset($_POST['c']) && !empty($_POST['c']) ? $_POST['c'] : '');$c = $this->safe_deal($c);if (empty($c)) {return $this->route_config['c'];} else {if(is_string($c)) return $c;}}/** * 获取事件 */public function route_a() {$a = isset($_GET['a']) && !empty($_GET['a']) ? $_GET['a'] : (isset($_POST['a']) && !empty($_POST['a']) ? $_POST['a'] : '');$a = $this->safe_deal($a);if (empty($a)) {return $this->route_config['a'];} else {if(is_string($a)) return $a;}}/** * 设置 cookie * @param string $var     变量名 * @param string $value   变量值 * @param int $time    过期时间 */public static function set_cookie($var, $value = '', $time = 0) {$time = $time > 0 ? $time : ($value == '' ? SYS_TIME - 3600 : 0);$s = $_SERVER['SERVER_PORT'] == '443' ? 1 : 0;$var = pc_base::load_config('system','cookie_pre').$var;$_COOKIE[$var] = $value;if (is_array($value)) {foreach($value as $k=>$v) {setcookie($var.'['.$k.']', sys_auth($v, 'ENCODE'), $time, pc_base::load_config('system','cookie_path'), pc_base::load_config('system','cookie_domain'), $s);}} else {setcookie($var, sys_auth($value, 'ENCODE'), $time, pc_base::load_config('system','cookie_path'), pc_base::load_config('system','cookie_domain'), $s);}}/** * 获取通过 set_cookie 设置的 cookie 变量  * @param string $var 变量名 * @param string $default 默认值  * @return mixed 成功则返回cookie 值,否则返回 false */public static function get_cookie($var, $default = '') {$var = pc_base::load_config('system','cookie_pre').$var;return isset($_COOKIE[$var]) ? sys_auth($_COOKIE[$var], 'DECODE') : $default;}/** * 安全处理函数 * 处理m,a,c */private function safe_deal($str) {return str_replace(array('/', '.'), '', $str);}}?>

原创粉丝点击