一个简单的 TP 3.2 中 天气查询的接口 (restful)
2015-05-15 08:59
459 查看
首先定义路由规则:参考:TP3.2开发手册 路由=》路由定义用到动态查询 getFieldBy方法 //针对某个字段查询并返回某个字段的值效果查看:实现代码:
1、下面先开启路由
'URL_ROUTER_ON'=>true,然后就是配置路由规则了,在模块的配置文件中使用URL_ROUTE_RULES参数进行配置,配置格式是一个数组,每个元素都代表一个路由规则,例如:
'URL_ROUTE_RULES'=>array(
'news/:year/:month/:day'=> array('News/archive','status=1'),
'news/:id'=>'News/read',
'news/read/:id'=>'/news/:1',
),
系统会按定义的顺序依次匹配路由规则,一旦匹配到的话,就会定位到路由定义中的控制器和操作方法去执行(可以传入其他的参数),并且后面的规则不会继续匹配。
2、其次定义控制器,继承RESTFUL控制器
<span style="font-size:18px;"><?php namespace Home\Controller; use Think\Controller\RestController; Class InfoController extends RestController { <?php /* *天气查询 *日期:2015-5-15 * *操作人:赵莹 * *参考:TP3.2开发手册 */ namespace Home\Controller; use Think\Controller\RestController; Class InfoController extends RestController { Public function Index(){ $name=$_GET['id'];//获取地址栏输入的地区信息 需要和 路由中 <span style="font-size:18px;"><code><span class="str">'news/:id'</span></code></span> 中的: 后面参数保持一致 if(!preg_match("/^[a-zA-Z\s]+$/",$name)){//判断输入的地区名字是否是拼音字母,如果不是输出错误码 echo 100201132; die; } if(empty(__EXT__)||__EXT__=='html'){ //__EXT__ <code><span class="pln"> </span><span class="pun">类库文件后缀(.</span><span class="kwd">class</span><span class="pun">.</span><span class="pln">php</span><span class="pun">) 判断地址栏文件的后缀名 //如果后缀名为html 就 给$type 赋值为 html 否则 就把获取的地址栏后缀名赋值给$type </span></code> $type="html"; }else{ $type=__EXT__; } //判断传值的方式 switch ($this->_method){ case 'get': // get请求处理代码 if ($type == 'html'){ $data=$this->city($name); // 调用 restful中reponse方法 处理 $this->response($data,'html'); }elseif($type == 'xml'){ $data=$this->city($name); // 调用 restful中reponse方法 处理 $this->response($data,'xml'); }elseif($type == 'json'){ $data=$this->city($name); // 调用 restful中reponse方法 处理 $this->response($data,'json'); } break; case 'put': // put请求处理代码 break; case 'post': // post请求处理代码 break; } } //查询数据库中数据信息 public function city($dizhi){ $sheng=M("sheng");// 省 $city=M("city");//市 $xian=M("xian");//县 if($dizhi=='china'){//如果地址栏输入的是国家china查询所有省的信息 $res=$sheng->select(); return $res; }else{ $sid=$sheng->getFieldByPyname($dizhi,'id');//针对某个字段查询并返回某个字段的值 if($sid==""){ $cid=$city->getFieldByPyname($dizhi,'id'); if($cid==""){ $xid=$xian->getFieldByPyname($dizhi,'id'); if($xid==""){ echo "没有该地天气数据"; }else{ $condition['id'] = $xid; $res=$xian->where($condition)->select(); return $res; } }else{ $condition['p_id'] = $cid; $res=$xian->where($condition)->select(); return $res; } }else{ $condition['p_id'] = $sid; $res=$city->where($condition)->select(); return $res; } } } } </span>
结束了!
相关文章推荐
- 展示一个简单的Android天气查询,获取的是Google的XML。
- Tp3.2 RESTFul 根据地区查询生成xml、html、json的Api接口的天气信息
- 一个简单的cxf框架调用webservice接口天气预报例子
- python3.6 简单爬虫爬取天气,flask在线查询接口制作
- 在同一个系统里用cxf 实现SOAP 协议和RESTful风格 两种类型的webservice接口(含简单demo)
- jmeter接口查询测试:简单的天气查询接口
- tp3.2实现简单的静态缓存
- 一个简单web系统的接口性能分析及调优过程
- 一个简单的基于Ajax的异步查询
- 使用Python的Bottle框架写一个简单的服务接口的示例
- 使用PHP开发一个简单的后台接口(响应移动端的get请求和post请求)
- Android异步通信机制简单地理解,Handler是当前线程的消息队列中的一个子队列,而Runable是可以被安排到Handler去运行的接口。 首先在Activity中创建一个继承自Han
- [Js/Jquery]天气接口简单使用
- C# WebService 使用(简单天气查询)
- 利用气象局的接口写一个自己的天气预报
- 一个简单的Mysql的联合查询列子
- 一个简单的文本查询程序—摘至《C++ Primer》
- 分享自己做的一个简单的查询表达式模拟(ESQL,Linq)(1)
- JavaWeb第三记<最简单的一个查询,删除程序>
- [置顶] 天气查询之高德地图天气预报接口