扩展CI的核心类,增加一些常用功能
<?phpif(!defined('BASEPATH')) die('No Access');
/**
* 扩展CI核心输入类
*
* 1. 增加获取全部POST,GET参数
* 2. 增加判断提交方法GET,POST
* 3. 将URL参数如/a/1/b/2/c/3这样的参数加入到GET中,方便获取
*
* 使用方法::::
* 1. 设置 config.php subclass_prefix = APP 或 更改 本类前缀APP
* 2. 文件名 APP_Input.php 可以根据需求更改
* 3. 文件地址 /application/core/APP_Input.php
*
* @class APP_Input
* @package core
* @author wangaibo168@163.com
* @link http://wwww.du52.com/text.php?id=549
* @version 1.0.0
*/
class APP_Input extends CI_Input
{
private static $urls = null;
/**
* 构造函数
*/
public function __construct()
{
parent::__construct();
}
/**
* 获取URL地址参数数组
*
* @return array|null
*/
public function urls(){
if(is_array(self::$urls)) return self::$urls;
$CI = &get_instance();
$urls = $CI->uri->ruri_to_assoc();
if(!is_array($urls)) $urls = array();
self::$urls = $urls;
return self::$urls;
}
/**
* 将URL地址参数数组合并到GET和REQUEST中
*/
public function set_urls(){
if(!is_array(self::$urls)){
$this->urls();
$_GET = array_merge(self::$urls,$_GET);
$_REQUEST = array_merge(self::$urls,$_REQUEST);
}
}
/**
* 重写Input的GET方法
*
* @param null $index
* @param bool $xss_clean
* @return string
*/
public function get($index, $xss_clean = FALSE)
{
$this->set_urls();
return parent::get($index, $xss_clean);
}
/**
* 重写Input的get_post方法
*
* @param string $index
* @param bool $xss_clean
* @return string
*/
public function get_post($index, $xss_clean = FALSE)
{
$this->set_urls();
return parent::get_post($index, $xss_clean);
}
/**
* 获取所有POST数据
*
* @param bool $xss_clean 是否清理XSS威胁
* @return array 所有POST数据
*/
public function posts($xss_clean = FALSE)
{
if(!is_array($_POST)) return array();
$result = array();
foreach(array_keys($_POST) as $v)
{
$result[$v] = $this->post($v,$xss_clean);
}
return $result;
}
/**
* 获取所有GET数据
*
* @param bool $xss_clean 是否清理XSS威胁
* @return array 所有GET数据
*/
public function gets($xss_clean = FALSE)
{
if(!is_array($_GET)) return array();
$this->set_urls();
$result = array();
foreach(array_keys($_GET) as $v)
{
$result[$v] = $this->get($v,$xss_clean);
}
return $result;
}
/**
* 获取所有请求数据
*
* @param bool $xss_clean 是否清除XSS威胁
* @return array 所有请求数据
*/
public function requests($xss_clean = FALSE)
{
if(!is_array($_REQUEST)) return array();
$this->set_urls();
$result = array();
foreach(array_keys($_REQUEST) as $v)
{
$result[$v] = $this->get_post($v, $xss_clean);
}
return $result;
}
/**
* 判断请求类型是否为POST
*
* @return bool
*/
public function isPost()
{
return strtolower($this->server('REQUEST_METHOD')) === 'post';
}
/**
* 判断请求类型是否为GET
*
* @return bool
*/
public function isGet()
{
return strtolower($this->server('REQUEST_METHOD')) === 'get';
}
}
?>
赞楼主的分享精神! 多谢楼主分享
页:
[1]