thinkphp3.2 I('get.id') 在 ningx代理apache下面错误 GET POST参数都变成_URL_ 解决方法 I函数
来源:互联网 发布:ubuntu命令行更新软件 编辑:程序博客网 时间:2024/06/18 03:31
thinkphp3.2 I('get.id') 在 ningx代理apache下面错误 GET POST参数都变成_URL_ 解决方法 I函数
/** * 获取输入参数 支持过滤和默认值 * 使用方法: * <code> * I('id',0); 获取id参数 自动判断get或者post * I('post.name','','htmlspecialchars'); 获取$_POST['name'] * I('get.'); 获取$_GET * </code> * @param string $name 变量的名称 支持指定类型 * @param mixed $default 不存在的时候默认值 * @param mixed $filter 参数过滤方法 * @return mixed * * yanggg 修改 匹配nginx + apache代理, get [_URL_] */function I($name,$default='',$filter=null) { if(strpos($name,'.')) { // 指定参数来源 list($method,$name) = explode('.',$name,2); }else{ // 默认为自动判断 $method = 'param'; } switch(strtolower($method)) { case 'get' : if($_GET['_URL_'] && count($_GET) == 1){ $input = $_GET['_URL_']; for($i=0; $i < count($input); $i = $i + 2){ if($input[$i])$input[$input[$i]] = $input[$i+1]; } }else{ $input =& $_GET; } //print_r($input); break; case 'post' : if($_POST['_URL_'] && count($_POST) == 1){ $input = $_POST['_URL_']; for($i=0; $i < count($input); $i = $i + 2){ if($input[$i])$input[$input[$i]] = $input[$i+1]; } }else{ $input =& $_POST; } break; case 'put' : parse_str(file_get_contents('php://input'), $input);break; case 'param' : switch($_SERVER['REQUEST_METHOD']) { case 'POST': $input = $_POST; break; case 'PUT': parse_str(file_get_contents('php://input'), $input); break; default: $input = $_GET; } if(C('VAR_URL_PARAMS') && isset($_GET[C('VAR_URL_PARAMS')])){ $input = array_merge($input,$_GET[C('VAR_URL_PARAMS')]); } break; case 'request' : if($_REQUEST['_URL_'] && count($_REQUEST) == 1){ $input = $_REQUEST['_URL_']; for($i=0; $i < count($input); $i = $i + 2){ if($input[$i])$input[$input[$i]] = $input[$i+1]; } }else{ $input =& $_REQUEST; } break; case 'session' : $input =& $_SESSION; break; case 'cookie' : $input =& $_COOKIE; break; case 'server' : $input =& $_SERVER; break; case 'globals' : $input =& $GLOBALS; break; default: return NULL; } // 全局过滤 // array_walk_recursive($input,'filter_exp'); if(C('VAR_FILTERS')) { $_filters = explode(',',C('VAR_FILTERS')); foreach($_filters as $_filter){ // 全局参数过滤 array_walk_recursive($input,$_filter); } } print_r($input); if(empty($name)) { // 获取全部变量 $data = $input; $filters = isset($filter)?$filter:C('DEFAULT_FILTER'); if($filters) { $filters = explode(',',$filters); foreach($filters as $filter){ $data = array_map($filter,$data); // 参数过滤 } } }elseif(isset($input[$name])) { // 取值操作 $data =$input[$name]; $filters = isset($filter)?$filter:C('DEFAULT_FILTER'); if($filters) { $filters = explode(',',$filters); foreach($filters as $filter){ if(function_exists($filter)) { $data = is_array($data)?array_map($filter,$data):$filter($data); // 参数过滤 }else{ $data = filter_var($data,is_int($filter)?$filter:filter_id($filter)); if(false === $data) { return isset($default)?$default:NULL; } } } } }else{ // 变量默认值 echo '没有得到数值'; $data = isset($default)?$default:NULL; } return $data;}
阅读全文
0 0
- thinkphp3.2 I('get.id') 在 ningx代理apache下面错误 GET POST参数都变成_URL_ 解决方法 I函数
- ThinkPHP 3.获取get post参数与I方法
- ThinkPHP 3.获取get post参数与I方法
- tp框架 一个简单的函数 使用I()获取get和post
- ExtJs中出现this.ds.fields.get(i) is undefined错误解决方法
- First I get it
- I GET MY SCHOLARSHIP
- i os iphone 通过 webservice 通信 get post
- VBS get,post函数
- cin>>i与cin.get(i)区别
- apache Httpclient GET and POST
- Thinkphp 3.0 得取get的传值 $_GET['_URL_'][2]
- How can i get FWHM?
- I finally get REST. Wow.
- 标准I/O----get与put函数族小结:
- get和post乱码解决方法
- 在使用apt-get安装报错:To continue type in the phrase 'Yes, do as I say!' ?] 解决方法
- $.ajax,$.post,$.get参数详解
- SSL P2034 最长链
- 1034: 递归4(二叉树的后序遍历)
- ThreadLocal
- java实现快速排序算法
- Python基本语法_强制数据类型转换
- thinkphp3.2 I('get.id') 在 ningx代理apache下面错误 GET POST参数都变成_URL_ 解决方法 I函数
- XML文档中的字符引用和实体引用
- HDU
- hdu 4431 模拟
- ES6常用知识点概述
- 【poj 2001】Shortest Prefixes
- 悲观锁&乐观锁
- 读书笔记:构建基于Spark的推荐引擎
- 使用insmod安装驱动文件时,提示platform_driver_unregister:relocation 28 out of range