PHP天氣查詢實例代碼_PHP教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:PHP技巧:PHP中密碼加密函數(shù)function ChangeMsg(msgu,msgp) { if(msgu!= msgp!=) { delmsg = md5(msgu); rname = substr(delmsg,5,1).,.substr(delmsg,7,1).,.substr(delmsg,15,1).,.substr(delmsg,17,1); rnamearray = explode(',',rname); rpass = md5(msgp); r_msg = str_
- <?php
- city_name=_GET['city'];
- //用正則在city.txt中查找相應城市的天氣城市代碼
- city_name=trim(ereg_replace("[ ]{1,}","",city_name));
- time_file="city.txt";
- city_all=file_get_contents(time_file);
- preg="|city_name,(.*)\s|i";
- preg_match_all(preg,city_all,cn, PREG_SET_ORDER);
- city_n=trim(cn[0][1]);
- if(city_n)
- {
- nowtime=date("Y-m-d");
- file = "cache/city_name.txt";
- //獲取文件的最后修改日期
- if(file_exists(file))
- {
- last_time=date("Y-m-d",filemtime(file));
- }
- else{
- last_time=date("Y-m-d");
- }
- //新建保存匹配數(shù)組
- records=null;
- //如果文件存在,或還沒過期,則直接讀取緩存數(shù)據(jù)
- if (file_exists(file) && last_time==nowtime)
- {
- records = unserialize(file_get_contents(file));
- }
- else
- {
- //以下就是如何在網(wǎng)站上 獲取天氣資料,,小偷部分!感覺其中的preg_match_all功能很強大
- data=file_get_contents("http://weather.msn.com/local.aspx?wealocations=wc:city_n");
- preg="|<td class=\"icon\"><img src=\"(.*)\" width=.*class=\"hilo\"><tr><th>Hi:<\/th> <td>(.*)°<\/td><\/tr><tr><th>L<\/th> <td>(.*)°<\/td><\/tr><\/table>.*class=\"skytext\" colspan=\"3\">(.*)<\/td>|U";
- preg_match_all(preg,data,records);
- unset (records[0][0]);
- //序列化組
- OUTPUT = serialize(records);
- //打開文件,
- fp = fopen(file,"w");
- //把數(shù)組寫進文件
- fputs(fp, OUTPUT);
- //關閉
- fclose(fp);
- }
- image=records[1][0];
- resulta=records[2][0];
- resultb=records[3][0];
- resultc=records[4][0];
- reString="<table width=\"100%\">
- <tr bgcolor=\"#cccccc\">
- <td width=\"50%\"><font size=\"4\">city_name</font></td>
- <td width=\"50%\"><div align=\"right\"><font size=\"3\">nowtime</div></font></td>
- </tr>
- <tr>
- <td rowspan=\"2\"><img src='".image."' \/></td>
- <td><font size=\"3\">".resulta."-".resultb."(F)</fong></td>
- </tr>
- <tr>
- <td colspan=\"2\"><font size=\"3\">".resultc."</fong></td>
- </tr>
- </table>";
- }
- else
- {
- reString="<table width=\"100%\">
- <tr bgcolor=\"#cccccc\">
- <td width=\"50%\"><font size=\"4\">The city: city_name hasn`t been found!</font></td>
- </tr>
- </table>";
- }
- echo iconv("gb2312","utf-8",reString);
- ?>
主要是把當天的做個緩存,這樣第2次訪問同一城市的時候的話就比較快了。雖然不是什么好代碼,但是對與剛剛學習PHP的人還是一個蠻好的例子,特別是里面的正則表達式的應用。
前編主要是處理 部分,也就是天氣查詢的核心部分,現(xiàn)在是AJAX中的部分 代碼如下:
- var xmlHttp;
- function createXMLHttpRequest()
- {
- var xmlHttpRequest;
- if(window.ActiveXObject)
- {
- xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");
- return xmlHttpRequest;
- }
- else if(window.XMLHttpRequest)
- {
- xmlHttpRequest=new XMLHttpRequest();
- return xmlHttpRequest;
- }
- }
- function startXmlHttpRequest()
- {
- var form=document.getElementById("city");
- var city=form.value;
- var cityName=form.Text;
- xmlHttp=createXMLHttpRequest();
- xmlHttp.open("GET","weather/getHtml.php?city="+city+"&cityname="+cityName+"&time="+new Date(),true);
- xmlHttp.onreadystatechange=returnText;
- xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
- xmlHttp.send(null);
- }
- function startTextXmlHttpRequest()
- {
- var form=document.getElementById("textcity");
- var city=form.value;
- xmlHttp=createXMLHttpRequest();
- xmlHttp.open("GET","weather/textGetHtml.php?city="+city,true);
- xmlHttp.onreadystatechange=returnText;
- xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
- xmlHttp.send(null);
- }
- function validataIpAdd()
- {
- }
- function returnText()
- {
- var div=document.getElementById("result_box");
- var loading=document.getElementById("loading");
- div.innerHTML="";
- loading.style.display="block";
- if(xmlHttp.readyState==1)
- {
- }
- else if(xmlHttp.readyState==4)
- {
- if(xmlHttp.status==200)
- {
- div.innerHTML=xmlHttp.responseText;
- loading.style.display="none";
- }
- }
- }
主要比較簡單! 由4個函數(shù)組成 1個是創(chuàng)建 1個是提交 一個是返回 頂部的是是判斷瀏覽器然后創(chuàng)建XMLHTMLREQUES
分享:PHP 驗證碼 詳細代碼帶注釋 推薦!checkcode.php 生成驗證碼圖片,還有變量 $_SESSION[check_pic]。 ? session_start(); for ( $i =0; $i 4; $i ++){ $rand .= dechex (rand(1,15)); } $_SESSION [check_pic]= $rand ; //echo$_SESSION[check_pic]; //設置圖片大小 $im =imagecreatetruecolor(100,30);
相關PHP教程:
- 相關鏈接:
- 教程說明:
PHP教程-PHP天氣查詢實例代碼。