最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信公眾平臺天氣預(yù)報功能開發(fā)

 更新時間:2014年07月06日 15:17:29   投稿:hebedich  
前一段開始做一個學(xué)校的微信應(yīng)用,里面添加了各種功能。天氣預(yù)報是必不可少的一部分。

本來是想自己直接從中國天氣網(wǎng)獲取信息并處理,后來發(fā)現(xiàn)處理起來太麻煩,而且要獲取所有城市的城市編碼,再有就是!不支持國外天氣?。。ㄎ覀儗W(xué)校有很多畢業(yè)生在國外上學(xué),所以我考慮還是做出支持國外天氣的版本)

因此考慮直接調(diào)用別人的API,一開始選用了方倍工作室已經(jīng)做好的接口(無奈也沒有國外)。直到有一天返回北京天氣溫度是零下的時候(當(dāng)時天熱到不敢出門)。。。換!換!換!

后來終于發(fā)現(xiàn)最靠譜的接口----百度的天氣API。

廢話少說,首先大家要上 百度地圖API申請一個專用key(大概一分鐘就搞定了,很方便)
代碼如下:

//圖文信息2 for 天氣【這是微信的圖文信息模板】
  $tqTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<ArticleCount>5</ArticleCount>
<Articles>
<item>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
<PicUrl><![CDATA[%s]]></PicUrl>
<Url><![CDATA[%s]]></Url>
</item>
<item>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
<PicUrl><![CDATA[%s]]></PicUrl>
<Url><![CDATA[%s]]></Url>
</item>
<item>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
<PicUrl><![CDATA[%s]]></PicUrl>
<Url><![CDATA[%s]]></Url>
</item>
<item>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
<PicUrl><![CDATA[%s]]></PicUrl>
<Url><![CDATA[%s]]></Url>
</item>
<item>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
<PicUrl><![CDATA[%s]]></PicUrl>
<Url><![CDATA[%s]]></Url>
</item>
<item>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
<PicUrl><![CDATA[%s]]></PicUrl>
<Url><![CDATA[%s]]></Url>
</item>
</Articles>
</xml> ";//最后發(fā)現(xiàn)最多只能看到五個item= =無語。。。

PHP代碼

if(substr_count($keyword,'天氣')!=0 && $keyword!='天氣')
  { 
   $geshu = substr_count($keyword,'天氣');
   $t = explode("天氣",$keyword);
   
   for($i=0;$i<=$geshu;$i++)
   {
    if($t[$i]!='')
    {
    $city = $t[$i];
    break;
    }
    
   }
   $mykey = "【這里換成你的API key】";
   $url = "http://api.map.baidu.com/telematics/v3/weather?location=".$city."&output=json&ak=".$mykey;
   $output = file_get_contents($url);
   $contentStr = json_decode($output, true);
   
   if($contentStr['status']=='success')
   {
    
    $T[0]['Title']=$contentStr['date']." ".$contentStr['results'][0]['currentCity']."天氣";
//$T[0]['PicUrl']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg";
//$T[0]['Url']="http://zhengwairen-try2.stor.sinaapp.com/xytq.jpg";
    //上面兩行可以設(shè)成你想要的頂部圖片
    if(is_array($contentStr['results'][0]['index']))
    {
    $T[2]['Title']="【pm2.5】".$contentStr['results'][0]['pm25']."\n"."【".$contentStr['results'][0]['index'][0]['title']."】"."(".$contentStr['results'][0]['index'][0]['zs'].") ".$contentStr['results'][0]['index'][0]['des'];
    //下一行是洗車指數(shù),感覺不對主題還是不要的好。。
    //$T[2]['Title']=$T[2]['Title']."\n"."【".$contentStr['results'][0]['index'][1]['title']."】(".$contentStr['results'][0]['index'][1]['zs'].") ".$contentStr['results'][0]['index'][1]['des'];
    $T[2]['Title']=$T[2]['Title']."\n"."【".$contentStr['results'][0]['index'][2]['title']."】(".$contentStr['results'][0]['index'][2]['zs'].") ".$contentStr['results'][0]['index'][2]['des'];
    }
    else
    $guowai=1;
    for($i=1,$aaa=0;$i<=5;$i++)
    {
    if($i==2 && $guowai!=1)
     continue;
    if($guowai==1 && $i==5)
     continue;
    $T[$i]['Title']=$contentStr['results'][0]['weather_data'][$aaa]['date']." ".$contentStr['results'][0]['weather_data'][$aaa]['temperature']." ".$contentStr['results'][0]['weather_data'][$aaa]['weather']." ".$contentStr['results'][0]['weather_data'][$aaa]['wind'];
    $T[$i]['PicUrl']=$contentStr['results'][0]['weather_data'][$aaa]['dayPictureUrl'];
    $T[$i]['Url']=$contentStr['results'][0]['weather_data'][$aaa]['dayPictureUrl'];
    $aaa++;
    }
    
    $tianqi = sprintf($tqTpl,$fromUsername,$toUsername,time(),"news",$T[0]['Title'],$T[0]['Description'],$T[0]['PicUrl'],$T[0]['Url'], $T[1]['Title'],$T[1]['Description'],$T[1]['PicUrl'],$T[1]['Url'], $T[2]['Title'],$T[2]['Description'],$T[2]['PicUrl'],$T[2]['Url'], $T[3]['Title'],$T[3]['Description'],$T[3]['PicUrl'],$T[3]['Url'], $T[4]['Title'],$T[4]['Description'],$T[4]['PicUrl'],$T[4]['Url'],$T[5]['Title'],$T[5]['Description'],$T[5]['PicUrl'],$T[5]['Url']);
    echo $tianqi;
   }
 
  }

效果圖如下:

將其中的$mykey變量改成自己的APIkey就行了。另外有一點(diǎn)讓我不解的是,我微信用的圖文模板明明是6個item,為什么回復(fù)實際效果只有5個呢= = 求廣大網(wǎng)友幫忙解釋

最后附代碼說明。用戶發(fā)送“北京天氣”和“天氣北京”都是可以的,所以首先做了字符串處理,得到正確的城市名。利用百度地圖API給的網(wǎng)址,發(fā)出GET請求(其實就是直接訪問),獲取一個json類型的數(shù)據(jù)包。將數(shù)據(jù)包信息轉(zhuǎn)成數(shù)組格式,對應(yīng)的回復(fù)微信用戶即可。國外的天氣沒有當(dāng)天天氣的具體說明,所以最后做了一點(diǎn)小修改。

相關(guān)文章

  • Codeigniter中禁止A Database Error Occurred錯誤提示的方法

    Codeigniter中禁止A Database Error Occurred錯誤提示的方法

    在默認(rèn)的情況下,CodeIgniter會顯示所有的PHP錯誤。但是當(dāng)你開發(fā)程序結(jié)束時,你可能想要改變這個情況。這篇文章主要介紹了Codeigniter中禁止A Database Error Occurred錯誤提示的方法,需要的朋友可以參考下
    2014-06-06
  • laravel多條件查詢方法(and,or嵌套查詢)

    laravel多條件查詢方法(and,or嵌套查詢)

    今天小編就為大家分享一篇laravel多條件查詢方法(and,or嵌套查詢),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • laravel框架使用阿里云短信發(fā)送消息操作示例

    laravel框架使用阿里云短信發(fā)送消息操作示例

    這篇文章主要介紹了laravel框架使用阿里云短信發(fā)送消息操作,結(jié)合實例形式分析了laravel框架阿里云aliyun-sms擴(kuò)展安裝及短信發(fā)送相關(guān)操作技巧,需要的朋友可以參考下
    2020-02-02
  • PHP XML和數(shù)組互相轉(zhuǎn)換詳解

    PHP XML和數(shù)組互相轉(zhuǎn)換詳解

    這篇文章主要介紹了PHP XML和數(shù)組互相轉(zhuǎn)換詳解的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • PHP實現(xiàn)微信提現(xiàn)功能(微信商城)

    PHP實現(xiàn)微信提現(xiàn)功能(微信商城)

    這篇文章主要介紹了PHP實現(xiàn)微信提現(xiàn)功能,此類功能在微信商城中經(jīng)常會用到,今天小編通過實例代碼給大家講解,需要的朋友可以參考下
    2019-11-11
  • PHP如何初始化PDO及原始SQL語句操作

    PHP如何初始化PDO及原始SQL語句操作

    PDO 已經(jīng)是 PHP 中操作數(shù)據(jù)庫事實上的標(biāo)準(zhǔn)。包括現(xiàn)在的框架和各種類庫,都是以 PDO 作為數(shù)據(jù)庫的連接方式?;旧现挥形覀冏约涸趯懞唵蔚臏y試代碼或者小的功能時會使用 mysqli 來操作數(shù)據(jù)庫。注意,普通的 mysql 擴(kuò)展已經(jīng)過時了哦!
    2021-06-06
  • Phpstorm+Xdebug斷點(diǎn)調(diào)試PHP的方法

    Phpstorm+Xdebug斷點(diǎn)調(diào)試PHP的方法

    這篇文章主要介紹了Phpstorm+Xdebug斷點(diǎn)調(diào)試PHP的方法,本教程將通過配置Xdebug擴(kuò)展進(jìn)行斷點(diǎn)調(diào)試,目的在于提高大家的開發(fā)效率,感興趣的小伙伴們可以參考一下
    2018-05-05
  • 教你如何用php實現(xiàn)LOL數(shù)據(jù)遠(yuǎn)程獲取

    教你如何用php實現(xiàn)LOL數(shù)據(jù)遠(yuǎn)程獲取

    LOL(英雄聯(lián)盟)最近非常的火爆,哥自然也在玩了,最近遇到個問題,就是每次想看看自己的戰(zhàn)斗力啥的,還得先開盒子等等,麻煩,最近有一個想法,打算把它實現(xiàn)出來。
    2014-06-06
  • php簡單實現(xiàn)MVC

    php簡單實現(xiàn)MVC

    文章簡單介紹了MVC的概念,php中的MVC,使用MVC的原因,以及如何簡單是先MVC,非常詳細(xì),這里推薦給大家。
    2015-02-02
  • 通過5個php實例細(xì)致說明傳值與傳引用的區(qū)別

    通過5個php實例細(xì)致說明傳值與傳引用的區(qū)別

    今天有個同事問我傳值和傳引用有什么不同,這讓我想起了,剛學(xué)php的時候,那個時候做過很多項目,做東西多,就以為自己php掌握的差不多了,隨著時間的推移,越深入的學(xué)習(xí),越覺得自己知道的真的很少,很少
    2012-08-08

最新評論

阿克苏市| 巴楚县| 广水市| 开江县| 辉县市| 台中县| 关岭| 沙洋县| 广宗县| 黎城县| 湖口县| 星座| 藁城市| 印江| 诸暨市| 临汾市| 昌宁县| 武宁县| 沐川县| 宁乡县| 天镇县| 安宁市| 崇礼县| 炉霍县| 盐源县| 永州市| 陆川县| 旬邑县| 临洮县| 昌吉市| 景谷| 博野县| 保康县| 都昌县| 洞头县| 丹凤县| 乐亭县| 温宿县| 乌海市| 南部县| 马公市|