【手機+PC】獲取用戶地理位置、顯示獲取城市的天氣

一、pc可以直接用這個網站的天氣

www.tianqi.com/dingzhi

二、上面的鏈接地址的天氣預報只支持pc站,手機4G會不顯示 天氣的相關信息會丟掉

1、手機端則利用下面的代碼

第一步【正確】利用api定位 確定用戶經緯度 再根據api 利用經緯度 獲取用戶地理位置

鏈接:http://pan.baidu.com/s/1dE1IiAH密碼:4zru


第一步:獲取ip [這種方法獲取的不準確 慎用]

function getIP()  
{  
    if (isset($_SERVER)){  
        if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){  
            $realip = $_SERVER["HTTP_X_FORWARDED_FOR"];  
        } else if (isset($_SERVER["HTTP_CLIENT_IP"])) {  
            $realip = $_SERVER["HTTP_CLIENT_IP"];  
        } else {  
            $realip = $_SERVER["REMOTE_ADDR"];  
        }  
    } else {  
        if (getenv("HTTP_X_FORWARDED_FOR")){  
            $realip = getenv("HTTP_X_FORWARDED_FOR");  
        } else if (getenv("HTTP_CLIENT_IP")) {  
            $realip = getenv("HTTP_CLIENT_IP");  
        } else {  
            $realip = getenv("REMOTE_ADDR");  
        }  
    }  
    return $realip;  
} 

第二步:利用百度的api獲取當前城市

        $getIp=$realip;
        $content =file_get_contents("http://api.map.baidu.com/location/ip?ak=6tNCG8mTxXruj6Cmek7heNS5099eDw0F&ip={$getIp}&coor=bd09ll");

        $json = json_decode($content);

$address['city']=$json->{'content'}->{'address_detail'}->{'city'};

第三步:利用下面代碼獲取相關天氣信息
        $data =file_get_contents('http://www.sojson.com/open/api/weather/json.shtml?city=哈爾濱市'); 

        $obj=json_decode($data);

        $city= $obj->city;//北京 1

        $a=$obj->data->forecast;

        $quality=$obj->data->quality; //空氣質量 4

        $a1=trim(mb_substr($a[1]->high,2,-1,'utf-8'));//最高氣溫  3

        $b1=trim(mb_substr($a[1]->low,2,-1,'utf-8'));//最低氣溫

        $wendu=$a1."℃"."~".$b1."℃";

        $type=$a[1]->type;//天氣 2

        dump($obj);

        die;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章