【phpcms-v9】phpcms-v9中url路由规则文件分析:phpcms/libs/classes/par
发布:smiling 来源: PHP粉丝网 添加日期:2014-10-24 09:56:32 浏览: 评论:0
【phpcms-v9】phpcms-v9中url路由规则文件分析:phpcms/libs/classes/param.class.php
- <?php
- /**
- * param.class.php 参数处理类
- *
- * @copyright (C) 2005-2012 PHPCMS
- * @license http://www.phpcms.cn/license/
- * @lastmodify 2012-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']) && !emptyempty($_GET['m']) ? $_GET['m'] : (isset($_POST['m']) && !emptyempty($_POST['m']) ? $_POST['m'] : '');
- $m = $this->safe_deal($m);
- if (emptyempty($m)) {
- return $this->route_config['m'];
- } else {
- if(is_string($m)) return $m;
- }
- }
- /**
- * 获取控制器
- */
- public function route_c() {
- $c = isset($_GET['c']) && !emptyempty($_GET['c']) ? $_GET['c'] : (isset($_POST['c']) && !emptyempty($_POST['c']) ? $_POST['c'] : '');
- $c = $this->safe_deal($c);
- if (emptyempty($c)) {
- return $this->route_config['c'];
- } else { //开源代码phpfensi.com
- if(is_string($c)) return $c;
- }
- }
- /**
- * 获取事件
- */
- public function route_a() {
- $a = isset($_GET['a']) && !emptyempty($_GET['a']) ? $_GET['a'] : (isset($_POST['a']) && !emptyempty($_POST['a']) ? $_POST['a'] : '');
- $a = $this->safe_deal($a);
- if (emptyempty($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);
- }
- }
- ?>
Tags: phpcms文件规则 phpcms路由规则
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)