维亿CMS资源网,免费分享和下载
当前位置: 首页 > CMS建站 > 用PbootCms扩展定制一个访客当地天气功能

用PbootCms扩展定制一个访客当地天气功能

匿名站长 CMS建站
扫码手机访问

Pbootcms交流群里有同学提出给PbootCms加一个天气。安排。

实现思路

用PbootCms扩展定制一个访客当地天气功能

首先我们要获取访客IP,pb有写好的方法,get_user_ip(),这个就不用重复去写了。


有了IP地址就要去查IP归属城市,

查询好归属地之后再用归属地去查询当地天气。

根据IP查询城市

百度地图有我需要的接口,首先你需要有一个AK:可以到百度地图开放平台去申请,当然你也可以直接用我的,我不介意。

我们先测试下,看看百度地图API返回的信息:

这个city是我想要的值。


根据city查询天气

我这里用的今日头条的API,如果你需要用其他的API可以自行对照修改。


我们来看看头条的API返回内容:

这个接口返回的内容还是很多的,不要慌,红框里是我想要的内容,提取出来就行了。


好了,万事是具备,只欠代码。


上代码

修改文件:apps/home/controller/ExtLabelController.php

首先在run方法中,加入自定义标签$this->diylabel();方法


    /* 必备启动函数 */

    public function run($content)

    {

        // 接收数据

        $this->content = $content;

        

        // 执行个人自定义标签函数

        $this->diylabel();


        // 返回数据

        return $this->content;

    }

紧接着,给出自定义标签的方法


    // 扩展单个标签

    private function diylabel()

    {

        $this->content = str_replace('{pboot:weather}', $this->getWeather(), $this->content);

    }

接下来就是要返回标签替换的内容,接着写


    //获取当地天气

    private function getWeather(){

        $city = $this->get_ip_city();

        $url = "https://www.toutiao.com/stream/widget/local_weather/data/?city={$city}";

        $result = get_url($url);

        $result = json_decode($result,true);

        //这里可以按照你需要自行组合

        return $city.' 今天'.$result['data']['weather']['day_condition'].' 当前气温'.$result['data']['weather']['current_temperature'];

    }


    //获取城市

    private function get_ip_city(){

        $ip = get_user_ip();

        $url   = 'http://api.map.baidu.com/location/ip?ip=' . $ip . '&ak=x7sOPlIYZkFO9eXZHwEj4bc06IhqhdoF';

        $html  = file_get_contents($url);

        $res   = json_decode($html);

        $city  = $res->content->address_detail->city; //城市

        return $city;

    }

使用方法

在模板中使用{pboot:weather}即可。

上效果图:

呐,你们要的自定义天气标签,也可以根据你的实际需求把天气用图片来显示,更美观,这个就请自行尝试吧。

提示:该代码需要正式环境生效,本地环境IP可能是127.0.0.*或者localhost,获取不到城市信息。

标签:

访客

免责声明:

本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail: 123456@qq.com

同类推荐