ThinkPHP 中国天气接口事例

本文介绍了一个基于PHP的路由配置及控制器实现案例,展示了如何通过URL传递参数并根据不同条件获取相应数据,同时支持不同数据格式的返回。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编写路由:

'URL_ROUTER_ON'   => true,  //开启路由
'URL_ROUTE_RULES'=>array(
    'index/:weather'=>'Index/index',
),

控制器内:

<?php
namespace Home\Controller;
use Think\Controller\RestController;
class IndexController extends RestController{

    Public function Index(){
        $name=$_GET['weather'];
        if(!preg_match("/^[a-zA-Z]+$/",$name)){   //判断是否为纯字母
            echo  1308;
            die;
        }
        /* __EXT__ 获得后缀名 */
        if(__EXT__==""){ //判断对方需要数据格式
            $type="html";
        }else{
            $type=__EXT__;
        }
        switch ($this->_method){ //判断请求方式
            case 'get':
                    $data=$this->sel($name);
                    $this->response($data,$type); //转换格式并输出
                break;
            default:break;
        }
    }

    public function sel($dizhi){
        $sheng=M("sheng");
        $city=M("city");
        $xian=M("xian");
        if($dizhi=='china'){
            $res=$sheng->select();
            return $res;
        }else{
            $sid=$sheng->getFieldByPyname($dizhi,'id'); //相当于 select id from sheng where pyname = $dizhi
            if($sid==""){
                $cid=$city->getFieldByPyname($dizhi,'id');
                if($cid==""){
                    $xid=$xian->getFieldByPyname($dizhi,'id');
                        if($xid==""){
                            echo "县级数据请查上一级";
                        }else{
                            $condition['id'] = $xid;
                            $data=$xian->where($condition)->select();
                            return $data;
                        }
                    }else{
                         $condition['p_id'] = $cid;
                        $data=$xian->where($condition)->select();
                         return $data;
                    }
                }else{
                    $condition['p_id'] = $sid;
                    $data=$city->where($condition)->select();
                    return $data;
            }
        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值