码迷,mamicode.com
首页 > Web开发 > 详细

php 接口获取公网ip并获取天气接口信息

时间:2018-08-21 16:31:23      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:touch   天气接口   cheng   int   iss   nsf   pre   tao   get   

<?php
    function get_ip(){
        //判断服务器是否允许$_SERVER
        if(isset($_SERVER)){    
            if(isset($_SERVER[‘HTTP_X_FORWARDED_FOR‘])){
                $realip = $_SERVER[‘HTTP_X_FORWARDED_FOR‘];
            }elseif(isset($_SERVER[‘HTTP_CLIENT_IP‘])) {
                $realip = $_SERVER[‘HTTP_CLIENT_IP‘];
            }else{
                $realip = $_SERVER[‘REMOTE_ADDR‘];
            }
        }else{
            //不允许就使用getenv获取  
            if(getenv("HTTP_X_FORWARDED_FOR")){
                  $realip = getenv( "HTTP_X_FORWARDED_FOR");
            }elseif(getenv("HTTP_CLIENT_IP")) {
                  $realip = getenv("HTTP_CLIENT_IP");
            }else{
                  $realip = getenv("REMOTE_ADDR");
            }
        }

        return $realip;
    }  
    
    function getIp(){
        $ip = get_ip();
        if($ip==‘127.0.0.1‘){
            $myIp = ‘myip‘;
        } 
        //初始化
        $curl = curl_init();
        //设置抓取的url
        curl_setopt($curl, CURLOPT_URL, ‘http://ip.taobao.com/service/getIpInfo.php?ip=‘.$myIp);
        //设置头文件的信息作为数据流输出
        curl_setopt($curl, CURLOPT_HEADER, 0);
        //设置获取的信息以文件流的形式返回,而不是直接输出。
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        //执行命令
        curl_multi_getcontent( $curl );
        $data = curl_exec($curl);
        //关闭URL请求
        curl_close($curl);
        
        //显示获得的数据
        return json_decode($data,true);
    }
    
    function weather($chengshi){
        $url = ‘http://wthrcdn.etouch.cn/weather_mini?city=‘.urlencode($chengshi);
        $html = file_get_contents($url);
        $jsondata = gzdecode($html);
        $data=json_decode($jsondata,true);

        $arr=array();
        $arr[‘chengshi‘]=$data[‘data‘][‘city‘];
        $dangtian=$data[‘data‘][‘forecast‘][0];
        $arr[‘gaowen‘]= str_replace("高温 ",null,$dangtian[‘high‘]);
        $arr[‘diwen‘]= str_replace("低温 ",null,$dangtian[‘low‘]);
        $arr[‘tianqi‘]=$dangtian[‘type‘];
        return $arr;
    }
    
    $area = getIp();
    if(isset($area[‘data‘][‘city‘])){
        $city = $area[‘data‘][‘city‘];
        $weather = weather($city);
        print_r($weather);
    }

 

php 接口获取公网ip并获取天气接口信息

标签:touch   天气接口   cheng   int   iss   nsf   pre   tao   get   

原文地址:https://www.cnblogs.com/zhanghanwen16/p/9512032.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!