1. php怎麼抓取天氣預報
可以藉由php的api或者preg_match_all偷偷擷取去達成目的
這里給你一段我給台灣朋友有一段源碼
<?php
header("Content-Type:text/html;charset=utf-8");
functiongetWeather($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('/<tableclass="FcstBoxTable01"[^>]*[^>]*>(.*)</div>/si',$result,$matches,PREG_SET_ORDER);
preg_match_all('/<tdnowrap="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="http://www.cwb.gov.tw/V7/forecast/taiwan/inc/city/$city.htm";
這里是讀取資料的網址
上面的是台灣中央氣象局
preg_match_all('/<tableclass="FcstBoxTable01"[^>]*[^>]*>(.*)</div>/si',$result,$matches,PREG_SET_ORDER);
preg_match_all('/<tdnowrap="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等等獲取)
2. HTML 求做一個簡單的桂林天氣預報網頁
(源代碼)
<!DOCTYPEhtml>
<html>
<head>
<metacharset="utf-8"/>
<title></title>
<linkrel="stylesheet"type="text/css"href="css/wai.css"/>
</head>
<body>
<divclass="box">
<divclass="top_box">桂林天氣預報</div>
<dlclass="date_box">
<dtclass="tubiao"><imgsrc="img/3.jpg"/></dt>
<dtclass="date">2012年03月14日</dt>
<dtclass="gl">桂林</dt>
<dtclass="zy">氣象信息由<span>中央氣象</span>台提供</dt>
</dl>
<dlclass="nav_box1">
<dtclass="current">當前天氣</dt>
<dtclass="say"><imgsrc="img/2.jpg"/></dt>
<dtclass="shower"><pclass="zy2">陣雨</p><p>12℃~18℃</p></dt>
<dtclass="wz">
<ul>
<liclass="fl">·風力:北風小於3級</li>
<li>·紫外線強度:弱</li>
<li>·空氣質量:良</li>
</ul>
</dt>
</dl>
<dlclass="nav_box2">
<dtclass="current">72小時天氣預報</dt>
<dtclass="date2">2012-03-14</dt>
<dtclass="date2">2012-03-15</dt>
<dtclass="date2">2012-03-16</dt>
<dtclass="say2"><imgsrc="img/1.jpg"/></dt>
<dtclass="say2"><imgsrc="img/1.jpg"/></dt>
<dtclass="say2"><imgsrc="img/1.jpg"/></dt>
<dtclass="wz2">
<ul>
<li>陣雨</li>
<li>12℃~18℃</li>
<li>北風小於3級</li>
</ul>
</dt>
<dtclass="wz2">
<ul>
<li>陣雨</li>
<li>12℃~18℃</li>
<li>北風小於3級</li>
</ul>
</dt>
<dtclass="wz2">
<ul>
<li>陣雨</li>
<li>12℃~18℃</li>
<li>北風小於3級</li>
</ul>
</dt>
</dl>
<dlclass="nav_box3">
<dtclass="tubiao2"><imgsrc="img/4.jpg"/></dt>
<dtclass="city">城市指數</dt>
<dtclass="gd"><ahref="#">更多</a></dt>
<dtclass="ht"></dt>
<dtclass="nav3_l">
<ul>
<li>穿衣指數</li>
<li>舒適度指數</li>
<li>晨練指數</li>
<li>感冒指數</li>
<li>空調指數</li>
<li>洗車指數</li>
<li>空氣污染指數</li>
<li>啤酒指數</li>
<li>晾曬指數</li>
<li>旅行指數</ul>
</ul>
</dt>
<dtclass="nav3_z">
<ul>
<li>舒適</li>
<li>舒適</li>
<li>較不宜</li>
<li>易發</li>
<li>較少開啟</li>
<li>不宜</li>
<li>良</li>
<li>較適宜</li>
<li>不太適宜</li>
<li>適宜</ul>
</ul>
</dt>
<dtclass="nav3_r">
<ul>
<li>建議著溥型套裝或牛仔衫褲等春秋過渡裝。年老體弱者宜著套裝...</li>
<li>溫度適宜,風力不大,您在這樣的天氣條件下,會感到比較清爽和...</li>
<li>有降水,較不宜晨練,室外鍛煉清攜帶雨具.建議年老體弱人群適...</li>
<li>晝夜溫差大,且空氣濕度較大,易發生感冒,請注意適當增減衣服...</li>
<li>您將感到很舒適,一般不需要開啟空調...</li>
<li>不宜洗車,未來24小時內有雨,如果在此期間洗車,雨水和路上...</li>
<li>氣象條件有利於空氣污染物稀釋、擴散和清除,可以室外正常活動...</li>
<li>適理的飲用啤酒可能會增加您舒適的感覺,但要注意適千萬不要過...</li>
<li>有降水,可能會淋濕晾曬的衣物,不太適宜晾曬,請隨時注意天氣...</li>
<li>有降水,溫度適宜,在細雨中遊玩別有一番情調,可不要錯過機會...</ul>
</ul>
</dt>
</dl>
</div>
</body>
</html>
(CSS樣式)
*{
margin:0;
padding:0;
}
ulli{
list-style:none;
}
.top_box{
width:100px;
height:30px;
background:#FFFFFF;
text-align:center;
line-height:30px;
color:blue;
font-weight:bold;
position:absolute;
margin-left:255px;
margin-top:-18px;
}
.box{
width:590px;
height:651px;
border:1pxsolid#0c5d0b;
margin:20pxauto;
background:#FFFFFF;
position:relative;
}
.date_box{
width:550px;
height:35px;
margin:5pxauto;
background:url(../img/5.jpg)no-repeat;
}
.tubiao{
width:35px;
}
.tubiaoimg{
margin-left:10px;
}
.date{
width:130px;
}
.gl{
width:50px;
}
.tubiao,.date,.gl,.zy{
float:left;
height:35px;
height:35px;
color:#b60329;
font-size:14px;
line-height:35px;
font-weight:bold;
}
.zy{
width:230px;
float:right;
text-align:center;
}
.zyspan{
color:black;
}
.nav_box1{
width:505px;
height:100px;
border:1pxsolidgainsboro;
margin:auto;
margin:5pxauto;
}
.current{
width:505px;
height:25px;
background:url(../img/6.jpg)no-repeat;
color:#1c385a;
line-height:25px;
text-indent:1em;
font-size:14px;
font-weight:bold;
}
.say{
width:180px;
height:75px;
float:left;
}
.sayimg{
margin:10px60px;
}
.shower{
width:140px;
height:75px;
float:left;
background:#edf1fa;
text-align:center;
color:#15376b;
font-size:14px;
}
.zy2{
width:140px;
height:20px;
margin-top:15px;
}
.wz{
width:185px;
height:75px;
float:left;
color:#15376b;
font-size:14px;
}
.wzulli{
list-style:none;
text-align:center;
}
.fl{
width:185px;
height:20px;
margin-top:5px;
}
.nav_box2{
width:505px;
height:170px;
border:1pxsolidgainsboro;
margin:5pxauto;
}
.date2{
width:155px;
height:22px;
float:left;
margin-left:10px;
margin-top:10px;
background:#eeeeee;
font-size:14px;
text-align:center;
line-height:22px;
}
.say2{
width:155px;
height:55px;
float:left;
margin-left:10px;
text-align:center;
}
.say2img{
margin-top:10px;
}
.wz2{
width:155px;
height:50px;
background:#eef3f7;
float:left;
margin-left:10px;
}
.wz2ulli{
list-style:none;
text-align:center;
font-size:12px;
}
.nav_box3{
width:505px;
height:270px;
border:1pxsolidgainsboro;
margin:5pxauto;
}
.city{
width:100px;
height:35px;
text-align:center;
float:left;
}
.tubiao2{
width:35px;
height:35px;
color:#b60329;
float:left;
}
.tubiao2img{
margin-left:20px;
}
.gd{
width:35px;
height:35px;
float:right;
}
.city,.tubiao2,.gd{
font-weight:bold;
font-size:14px;
line-height:35px;
}
.gda{
text-decoration:none;
color:black;
display:block;
}
.gda:hover{
color:darkred;
}
.ht{
width:480px;
height:3px;
margin:auto;
background:url(../img/9.jpg)no-repeat;
margin-top:35px;
}
.nav3_l{
width:90px;
height:220px;
float:left;
font-size:12px;
}
.nav3_lulli{
width:90px;
text-align:left;
font-weight:bold;
color:#15376B;
text-indent:1em;
}
.nav3_z{
width:60px;
height:220px;
}
.nav3_zulli{
width:60px;
text-align:left;
font-weight:bold;
color:#000000;
}
.nav3_r{
width:350px;
height:220px;
}
.nav3_r,.nav3_z{
font-size:12px;
float:left;
}
.nav3_rulli{
width:350px;
text-align:left;
color:#666666;
}
.nav3_rulli,.nav3_zulli,.nav3_lulli{
font-weight:bold;
line-height:22px;
height:22px;
}
3. 網頁天氣預報插件代碼
不用安裝插件,你把下面的代碼插入你的網頁中就可以了:第一種: 代碼: <iframe width="145" height="130" border="0" align="center" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no" src="" allowTransparency="true"></iframe> 效果預覽: 說明:這種適合於在網頁的邊欄插入。但一個缺點是,上面的4個城市是既定的,無法改成別的。插入時,選好網頁上的位置,直接將左欄的源代碼全部拷進去就行了 第二種: 代碼: <IFRAME ID='ifm2' WIDTH='189' HEIGHT='190' ALIGN='CENTER' MARGINWIDTH='0' MARGINHEIGHT='0' HSPACE='0' VSPACE='0' FRAMEBORDER='0' SCROLLING='NO' SRC=''></IFRAME> 效果預覽: 說明:這種 也適合於在網頁的邊欄插入。上面的城市可以自定,比如廈門可改成別的。定製的方法是修改我代碼中標紅的數字,從1開始代表「香港」開始,每個數字都代表一個城市,廈門是287,具體要哪個城市自己找一下罷。 第三種: 代碼: <IFRAME ID='ifm2' WIDTH='260' HEIGHT='70' ALIGN='CENTER' MARGINWIDTH='0' MARGINHEIGHT='0' HSPACE='0' VSPACE='0' FRAMEBORDER='0' SCROLLING='NO' src=""></iframe> 效果預覽: 說明:這種適合於在網頁的頭欄插入。上面的城市可以自定,比如 石家莊可改成別的。定製的方法是修改我代碼中標紅的數字。具體各個城市對照的id表可在此下載:城市名稱及ID對照表(請右鍵點擊—>另存為)。 第四種: 代碼: <iframe width="469" height="218" border="0" align="center" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no" src="廈門" allowTransparency="true"></iframe> 效果預覽: 說明:這種適合於在網頁的正欄插入。上面的城市可以自定,比如廈門可改成別的。定製的方法是修改我代碼中標紅的 名稱。這里比較簡單,直接用漢字改就行了。比如是福州的,你就直接把「廈門」改成福州就行。 第五種: 代碼: <IFRAME ID='ifm1' WIDTH='405' HEIGHT='332' ALIGN='center' MARGINWIDTH='0' MARGINHEIGHT='0' HSPACE='0' VSPACE='0' FRAMEBORDER='0' SCROLLING='NO' SRC=""></IFRAME> 效果預覽: 第六種: 代碼: <iframe width=160 height=230 frameborder=0 scrolling=NO src=南昌></iframe> 效果預覽: 說明:這種適合於在網頁的邊欄插入。上面的城市可以自定,比如南昌可改成別的。定製的方法是修改我代碼中標紅的名稱。這里比較簡單,直接用漢字改就行了。比如是福州的,你就直接把「廈門」改成福州就行
很不錯哦,你可以試下
qgulqjbsvk62041435102011-10-12 9:09:45
4. 天氣預flash格式的代碼
http://www.weather.com.cn/static/html/weather_cj.shtml
進上面的網站,裡面有很多代碼,非常好用!
呵呵,好喜歡你的高分O(∩_∩)O哈哈~