【php开源代码栏目提醒】:网学会员鉴于大家对php开源代码十分关注,论文会员在此为大家搜集整理了“Input.class.php”一文,供大家参考学习
<?php
// +----------------------------------------------------------------------
// | Think
PHP // +----------------------------------------------------------------------
// | Copyright (c) 2008 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
// $Id$
// 杈撳叆鏁版嵁绠$悊绫?
class Input extends Base {
private $filter = null; // 杈撳叆杩囨护
private static $_input = array('get','post','request','env','server','cookie','session','globals','config','lang','call');
static public function getInstance() {
return get_instance_of(__CLASS__);
}
/**
+----------------------------------------------------------
* 榄旀湳鏂规硶 鏈変笉瀛樺湪鐨勬搷浣滅殑鏃跺欐墽琛?
+----------------------------------------------------------
* @access public
+----------------------------------------------------------
* @param string $type 杈撳叆鏁版嵁绫诲瀷
* @param array $args 鍙傛暟 array(key,filter,default)
+----------------------------------------------------------
* @return mixed
+----------------------------------------------------------
*/
public function __call($type,$args=array()) {
$type = strtolower(trim($type));
if(in_array($type,self::$_input,true)) {
switch($type) {
case 'get': $input =& $_GET;break;
case 'post': $input =& $_POST;break;
case 'request': $input =& $_REQUEST;break;
case 'env': $input =& $_ENV;break;
case 'server': $input =& $_SERVER;break;
case 'cookie': $input =& $_COOKIE;break;
case 'session': $input =& $_SESSION;break;
case 'globals': $input =& $GLOBALS;break;
case 'files': $input =& $_FILES;break;
case 'call': $input = 'call';break;
case 'config': $input = C();break;
case 'lang': $input = L();break;
default:return NULL;
}
if('call' === $input) {
// 鍛煎彨鍏朵粬鏂瑰紡鐨勮緭鍏ユ暟鎹?
$callback = array_shift($args);
$params = array_shift($args);
$data = call_user_func_array($callback,$params);
if(count($args)===0) {
return $data;
}
$filter = isset($args[0])?$args[0]:$this->filter;
if(!empty($filter)) {
$data = call_user_func_array($filter,$data);
}
}else{
if(count($args)===0) {
return $input;
}else{
if(array_key_exists($args[0],$input)) {
// 绯荤粺鍙橀噺
$data = $input[$args[0]];
$filter = isset($args[1])?$args[1]:$this->filter;
if(!empty($filter)) {
$data = call_user_func_array($filter,$data);
}
}else{
// 涓嶅瓨鍦ㄦ寚瀹氳緭鍏?
$data = isset($args[2])?$args[2]:NULL;
}
}
}
return $data;
}
}
/**
+----------------------------------------------------------
* 璁剧疆鏁版嵁杩囨护鏂规硶
+----------------------------------------------------------
* @access private
+----------------------------------------------------------
* @param mixed $filter 杩囨护鏂规硶
+----------------------------------------------------------
* @return void
+----------------------------------------------------------
*/
public function filter($filter) {
$this->filter = $filter;
return $this;
}
}
?>