php天氣預報,php天氣預報網站源碼

本文目錄一覽:

php怎麼解析天氣預報api返回的數據

json就要用json的形式返回啊 就行ajax返回數據一樣 它的返回值是true 就是正確的 如果是返回ajax的話,先判斷data 為真就直接data.XX(字段名) 就可以取出來了

怎麼用php抓取天氣預報?先說下思路,再舉個例子。

我昨天剛做了個,本來打算自己用,你既然問,就分享了吧!

PS:因為我是菏澤人,所以,如果你什麼都不填,就顯示菏澤天氣。

如果想顯示別的,直接輸入就行,比如”香港”,然後提交就OK了

不知道是否合乎樓主的意願(不用JS)

php怎麼抓取天氣預報?

可以藉由php的api或者preg_match_all偷偷擷取去達成目的

這裡給你一段我給台灣朋友有一段源碼

?php

header(\”Content-Type: text/html; charset=utf-8\”);

function getWeather($city){

$toURL = \”

$city.htm\”;

$post = array();

$ch = curl_init();

$options = array(

CURLOPT_REFERER=”,

CURLOPT_URL=$toURL,

CURLOPT_VERBOSE=0,

CURLOPT_RETURNTRANSFER=true,

CURLOPT_USERAGENT=\”Mozilla/4.0 (compatible;)\”,

CURLOPT_POST=true,

CURLOPT_POSTFIELDS=http_build_query($post),

);

curl_setopt_array($ch, $options);

$result = curl_exec($ch); 

curl_close($ch);

//連接中央氣象局

echo ‘pre’;

preg_match_all(‘/table class=\”FcstBoxTable01\” [^]*[^]*(.*)\/div/si’,$result, $matches, PREG_SET_ORDER);

preg_match_all(‘/td nowrap=\”nowrap\” [^]*[^]*(.*)\/td/si’,$matches[0][1], $m1, PREG_SET_ORDER);

$m2 = explode(‘/td’,$m1[0][1]);

// print_r($m2);//取得每日資料m2[0~6]

$weather = array();

for($i=0;$i=6;$i++){

preg_match_all(‘/src=[^]*[^](.*)/si’,$m2[$i], $m5, PREG_SET_ORDER);//取得天氣圖檔

$m6 = explode(‘\”‘,$m5[0][0]);

$wi=’

($m6[1],’\.\./\.\./’);

$wtitle = $m6[3];

     print_r($wtitle);

$weather[$i][‘date’] = date(\”m-d\”, mktime(0, 0, 0, date(\”m\”), date(\”d\”)+$i,date(\”Y\”)));

$weather[$i][‘temperature’] = trim(strip_tags($m2[$i]));

$weather[$i][‘title’] = $wtitle;

$weather[$i][‘img’] = $wi;

}

return($weather);

}

  $weather=getWeather(\”Taipei_City\”) ;   

  print_r($weather);

  

// header(\”Location:loc.php\”);

?

首先

$toURL = \”\”;

這裡是讀取資料的網址

上面的是台灣中央氣象局

preg_match_all(‘/table class=\”FcstBoxTable01\” [^]*[^]*(.*)\/div/si’,$result, $matches, PREG_SET_ORDER);

preg_match_all(‘/td nowrap=\”nowrap\” [^]*[^]*(.*)\/td/si’,$matches[0][1], $m1, PREG_SET_ORDER);

這裡是截取台灣中央氣象局網頁信息table class=\”FcstBoxTable01\” [^]*[^]*(.*)\/div的資料以及td nowrap=\”nowrap\” [^]*[^]*(.*)\/td的資料分別是1天跟1周

$m2 = explode(‘/td’,$m1[0][1]);

// print_r($m2);//取得每日資料m2[0~6]

這裡是取得每日的資料

preg_match_all(‘/src=[^]*[^](.*)/si’,$m2[$i], $m5, PREG_SET_ORDER);//取得天氣圖檔

這裡是取得天氣的圖檔

$m6 = explode(‘\”‘,$m5[0][0]);

$wi=’

($m6[1],’\.\./\.\./’);

$wtitle = $m6[3];

     print_r($wtitle);

$weather[$i][‘date’] = date(\”m-d\”, mktime(0, 0, 0, date(\”m\”), date(\”d\”)+$i,date(\”Y\”)));

$weather[$i][‘temperature’] = trim(strip_tags($m2[$i]));

$weather[$i][‘title’] = $wtitle;

$weather[$i][‘img’] = $wi;

這裡是返回的網址,日期,標題,圖檔等等的資料

  $weather=getWeather(\”Taipei_City\”) ;   

  print_r($weather);

然後這裡是顯示出地區的一周天氣預報

結論:就是如果你想從網站上面截取天氣預報

在php可以是用preg_match_all(網頁的表格table,表格的列數tr,表格的欄位td,或者更加廣泛的標籤div等等獲取)

php獲取天氣預報的代碼

?php    

$URLStyle = “”;    

$chinaURL = sprintf($URLStyle, “china”);    

$chinaStr = file_get_contents($chinaURL);    

$chinaObj = simplexml_load_string($chinaStr);    

$chinaObjLen = count($chinaObj-city);    

echo “chinaObjLen = “.$chinaObjLen.”\n”;    

for ($i=0;$i$chinaObjLen;$i++){    

//遍歷省一級節點,共37個    

        $level1 = $chinaObj-city[$i][“pyName”];    

        $shengjiURL = sprintf($URLStyle, $level1);    

        $shengjiStr = file_get_contents($shengjiURL);    

        //echo $shengjiStr;    

        $shengjiObj = simplexml_load_string($shengjiStr);     

        $shengjiObjLen = count($shengjiObj-city);    

//      echo $chinaObj-city[$i][“quName”];    

//      echo ” “.$shengjiObjLen.”\n”;    

        for ($j=0;$j$shengjiObjLen;$j++){    

        //遍歷市一級節點    

                $level2 = $shengjiObj-city[$j][“pyName”];    

                $shijiURL = sprintf($URLStyle, $level2);    

                $shijiStr = file_get_contents($shijiURL);    

                //echo $shijiStr;    

                $shijiObj = simplexml_load_string($shijiStr);     

             //直轄市和海南、台灣、釣魚島等沒有縣級節點    

                if(!$shijiObj){    

                        echo “WARNNING: not exsit next level node. – “.$level1.”-“.$shijiURL.”\n”;    

                        echo ‘  “‘.$shengjiObj-city[$j][“cityname”].'” = ‘;    

                        echo $shengjiObj-city[$j][“url”].”,\n”;    

                        continue;    

                }    

                $shijiObjLen = count($shijiObj-city);    

                //echo $shengjiObj-city[$j][“cityname”].”  “;    

                //echo $shijiObjLen.”\n”;    

                for ($k=0;$k$shijiObjLen;$k++){    

                //遍歷縣一級節點    

                        $xianji_code = $shijiObj-city[$k][“url”];    

                        echo ‘  “‘.$shijiObj-city[$k][“cityname”].'” = ‘;    

                        echo $shijiObj-city[$k][“url”].”,\n”;    

                        //echo $xianji_code.”\n”;     

                }    

        }    

}           

//print_r($chinaObj);    

?

通過XML接口根節點遞歸獲得全國幾千個縣以上城市cide code的代碼

百度首頁的天氣預報顯示用php怎麼實現

方式一、你可以去氣象局的網站使用php(python)爬蟲抓取網頁HTML內容提取其中的信息即可。

方式二、氣象局的網站一般提供了免費的API接口,可以得到一個封裝好的JSON數據包,拆開就能得到很多信息

如何製作微信返回天氣預報功能php.來自Hurray0

一般流程是:

1.用戶輸入需要查看天氣等信息的地點發送給公眾號,如:北京朝陽天氣

2.公眾號接受到文本信息,解析接受:北京朝陽天氣

3.調用天氣api,查詢天氣信息

4.把查詢到的信息返回給用戶

這裡利用到了微信開放文檔中的:接收普通消息--文本消息

,具體細節查看文檔:

原創文章,作者:NSQJ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/140790.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
NSQJ的頭像NSQJ
上一篇 2024-10-04 00:24
下一篇 2024-10-04 00:24

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python爬蟲可以爬哪些網站

    Python是被廣泛運用於數據處理和分析領域的編程語言之一。它具有易用性、靈活性和成本效益高等特點,因此越來越多的人開始使用它進行網站爬取。本文將從多個方面詳細闡述,Python爬…

    編程 2025-04-29
  • 雲智直聘 源碼分析

    本文將會對雲智直聘的源碼進行分析,包括前端頁面和後端代碼,幫助讀者了解其架構、技術實現以及對一些常見的問題進行解決。通過本文的閱讀,讀者將會了解到雲智直聘的特點、優勢以及不足之處,…

    編程 2025-04-29
  • 網站為什麼會被黑客攻擊?

    黑客攻擊是指利用計算機技術手段,入侵或者破壞計算機信息系統的一種行為。網站被黑客攻擊是常見的安全隱患之一,那麼,為什麼網站會被黑客攻擊呢?本文將從不同角度分析這個問題,並且提出相應…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 如何用Python訪問網站

    本文將從以下幾個方面介紹如何使用Python訪問網站:網絡請求、POST請求、用戶代理、Cookie、代理IP、API請求。 一、網絡請求 Python有三種主流的網絡請求庫:ur…

    編程 2025-04-29
  • 如何將Python開發的網站變成APP

    要將Python開發的網站變成APP,可以通過Python的Web框架或者APP框架,將網站封裝為APP的形式。常見的方法有: 一、使用Python的Web框架Django Dja…

    編程 2025-04-28
  • 如何在服務器上運行網站

    想要在服務器上運行網站,需要按照以下步驟進行配置和部署。 一、選擇服務器和域名 想要在服務器上運行網站,首先需要選擇一台雲服務器或者自己搭建的服務器。雲服務器會提供更好的穩定性和可…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Python網站源碼解析

    本文將從多個方面對Python網站源碼進行詳細解析,包括搭建網站、數據處理、安全性等內容。 一、搭建網站 Python是一種高級編程語言,適用於多種領域。它也可以用於搭建網站。最常…

    編程 2025-04-28

發表回復

登錄後才能評論