当前位置:首页 > 技术文档 > 正文内容

thinkphp获取URL参数

admin10年前 (2015-06-15)技术文档2046
一般情况下URL中的参数就是通过GET方法获取,但是由于PATHINFO的特 殊性,URL地址最终需要被解析才能转换成GET参数,ThinkPHP对URL是按照一定的规则进行解析的,除非你使用了URL路由规则,如果你对 URL做了特别的定制,但是又不想使用URL路由,那么可以使用框架提供的URL参数获取方法直接获取,例如,我们访问一个如下的网址:
http://serverName/News/archive/2012/01/15
正常情况下,只有通过路由才能解析后面的2012/01/15,现在我们可以直接在News控制器的archive操作方法里面直接使用:
  1. Class NewsAction extends Action {
         Public function archive(){
         $year    = $_GET["_URL_"][2]; 
         $month  = $_GET["_URL_"][3];
         $day    = $_GET["_URL_"][4];
         }
     }
我 们可以把URL地址 News/archive/2012/01/15 按照“/”分成多个参数,$_GET["_URL_"][0] 获取的就是News,$_GET["_URL_"][1]获取的就是archive,依次类推,可以通过数字索引获取所有的URL参数。
1

3.0版开始支持URL地址中的PATH_INFO方式的URL的参数获取方式,需要配置
VAR_URL_PARAMS参数,默认值是:

  1. 'VAR_URL_PARAMS' =>'_URL_',      // PATHINFO URL参数变量
如果这个值不为空的话,就可以获取URL地址里面的PATH_INFO URL参数,例如
我们访问
  1. http://serverName.com/index.php/Blog/read/2012/03
则可以在Blog控制器的read操作方法里面采用
$GET['_URL_'][2] 获取参数,表示获取PATH_INFO的URL参数
Blog/read/2012/03中的第3个参数(数组索引从0开始)
  1. $year = $GET['_URL_'][2]; // 2012
     $month = $GET['_URL_'][3]; //  03
3.1版本开始,建议使用_param方法获取URL参数,_param方法方法是3.1新增的方法,可以自动根据当前请求类型获取参数。
_param方法的用法同_get和_post等方法,区别在于,_param方法能够自动根据当前请求类型自动获取相应的参数,例如:
如果当前是get请求方式,
  1. $this->_param('id');
将会返回$_GET['id'] 的处理数据
当采用POST请求方式的时候,同样的代码将会返回$_POST['id']的处理数据
如果采用的是PUT请求,那么会自动返回PUT的处理数据,而无需开发人员进行判断。
并且需要注意的是,无论是什么方式的请求,系统都可以支持URL参数的获取,如果C('VAR_URL_PARAMS')设置不为空的话,就可以使用:
  1. $this->_param(1);
     $this->_param(2);
来获取URL地址中的某个参数。
  1. $year = $this->_param(2);
     $month = $this->_param(3);
的方式来获取。
这样的好处是可以不需要使用路由功能就可以获取某个不规则的URL地址中的参数。


分享到:

扫描二维码推送至手机访问。

版权声明:本文由云河空间发布,如需转载请注明出处。

本文链接:http://yuyunhe.cn/index.php/post/57.html

分享给朋友:

“thinkphp获取URL参数” 的相关文章

php 判断手机访问

//手机来访 function is_mobile() {     $user_agent = $_SERVER['HTTP_USER_AGENT'];    &n...

php批量下载图片

假如现在我现在发现一个网站上的图片保存方式是1001 – 1999目录下都存放着从1开始(数量不等)的.jpg图片,现在我决定用php的方法将图片按照自己需要的样式直接下载到本地   假如图片开始地址为:http://image.xxx.com/img/1001/1...

jQuery UI 使用入门

jQuery UI 使用入门

 最近项目中使用了一些插件来做页面,这里把jQuery UI的使用分享出来,希望 对新手有帮助。文章结尾附源码下载。1 jQuery UI        有时你仅仅是为了实现一个渐变的动画效果而不得不把javascrip 重新学习一遍然后书写大量代码。直到...

推荐一些国内的Jquery CDN免费服务

Jquery是个非常流行的JS前端框架,在很多网站都能看到它的身影。很多网站都喜欢采用一些Jquery CDN加速服务,这样网站加载jquery会更快。之前火端网络的一些网站都是使用Google的jquery CDN,如:http://ajax.googleapis.com/ajax/lib...

如何在不同编程语言中获取现在的Unix时间戳(Unix timestamp)

如何在不同编程语言中获取现在的Unix时间戳(Unix timestamp)?先上代码进行java时间转换成unix timestampimport java.text.DateFormat;   import java.text.ParseExceptio...

jQuery结合PHP+MySQL实现二级联动下拉列表[实例]

jQuery结合PHP+MySQL实现二级联动下拉列表[实例]

二级联动的实现方法还真不少,实用性也很强,这里结合一个学生信息表的实例,来分享一下我的实现过程实现原理:根据省份值的变动,通过jQuery把sf_id传给后台php文件处理,php通过查询MySQl数据库,得到对应的地市名,并返回JSON数据给前端处理,即实现联动效果!为便于讲解,这里直接给出省份:...

评论列表

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。