PHP天氣查詢實例代碼_PHP教程

      編輯Tag賺U幣
      教程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_

      1. <?php 
      2. city_name=_GET['city']; 
      3. //用正則在city.txt中查找相應城市的天氣城市代碼 
      4. city_name=trim(ereg_replace("[ ]{1,}","",city_name)); 
      5. time_file="city.txt"
      6. city_all=file_get_contents(time_file); 
      7. preg="|city_name,(.*)\s|i"
      8. preg_match_all(preg,city_all,cn, PREG_SET_ORDER); 
      9. city_n=trim(cn[0][1]); 
      10.  
      11. if(city_n) 
      12. nowtime=date("Y-m-d"); 
      13. file = "cache/city_name.txt"
      14. //獲取文件的最后修改日期 
      15. if(file_exists(file)) 
      16. last_time=date("Y-m-d",filemtime(file)); 
      17. else{ 
      18. last_time=date("Y-m-d"); 
      19. //新建保存匹配數(shù)組 
      20. records=null
      21.  
      22. //如果文件存在,或還沒過期,則直接讀取緩存數(shù)據(jù) 
      23. if (file_exists(file) && last_time==nowtime) 
      24. {  
      25. records = unserialize(file_get_contents(file)); 
      26. else 
      27. //以下就是如何在網(wǎng)站上 獲取天氣資料,,小偷部分!感覺其中的preg_match_all功能很強大 
      28. data=file_get_contents("http://weather.msn.com/local.aspx?wealocations=wc:city_n"); 
      29. preg="|<td class=\"icon\"><img src=\"(.*)\" width=.*class=\"hilo\"><tr><th>Hi:<\/th> <td>(.*)&#176;<\/td><\/tr><tr><th>L<\/th> <td>(.*)&#176;<\/td><\/tr><\/table>.*class=\"skytext\" colspan=\"3\">(.*)<\/td>|U"; 
      30. preg_match_all(preg,data,records); 
      31. unset (records[0][0]); 
      32. //序列化組 
      33. OUTPUT = serialize(records);  
      34. //打開文件, 
      35. fp = fopen(file,"w");  
      36. //把數(shù)組寫進文件 
      37. fputs(fp, OUTPUT);  
      38. //關閉 
      39. fclose(fp);  
      40. image=records[1][0]; 
      41. resulta=records[2][0]; 
      42. resultb=records[3][0]; 
      43. resultc=records[4][0]; 
      44. reString="<table width=\"100%\"> 
      45. <tr bgcolor=\"#cccccc\"> 
      46. <td width=\"50%\"><font size=\"4\">city_name</font></td> 
      47. <td width=\"50%\"><div align=\"right\"><font size=\"3\">nowtime</div></font></td> 
      48. </tr> 
      49. <tr> 
      50. <td rowspan=\"2\"><img src='".image."' \/></td> 
      51. <td><font size=\"3\">".resulta."-".resultb."(F)</fong></td> 
      52. </tr> 
      53. <tr> 
      54. <td colspan=\"2\"><font size=\"3\">".resultc."</fong></td> 
      55. </tr> 
      56. </table>"; 
      57. else 
      58. reString="<table width=\"100%\"> 
      59. <tr bgcolor=\"#cccccc\"> 
      60. <td width=\"50%\"><font size=\"4\">The city: city_name hasn`t been found!</font></td> 
      61. </tr> 
      62. </table>"; 
      63. echo iconv("gb2312","utf-8",reString); 
      64. ?> 

      主要是把當天的做個緩存,這樣第2次訪問同一城市的時候的話就比較快了。雖然不是什么好代碼,但是對與剛剛學習PHP的人還是一個蠻好的例子,特別是里面的正則表達式的應用。

      前編主要是處理 部分,也就是天氣查詢的核心部分,現(xiàn)在是AJAX中的部分 代碼如下:

      1. var xmlHttp; 
      2. function createXMLHttpRequest() 
      3. var xmlHttpRequest; 
      4. if(window.ActiveXObject) 
      5. xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP"); 
      6. return xmlHttpRequest; 
      7. else if(window.XMLHttpRequest) 
      8. xmlHttpRequest=new XMLHttpRequest(); 
      9. return xmlHttpRequest; 
      10. function startXmlHttpRequest() 
      11. var form=document.getElementById("city"); 
      12. var city=form.value; 
      13. var cityName=form.Text; 
      14. xmlHttp=createXMLHttpRequest(); 
      15. xmlHttp.open("GET","weather/getHtml.php?city="+city+"&cityname="+cityName+"&time="+new Date(),true); 
      16. xmlHttp.onreadystatechange=returnText
      17. xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
      18. xmlHttp.send(null); 
      19. function startTextXmlHttpRequest() 
      20. var form=document.getElementById("textcity"); 
      21. var city=form.value; 
      22. xmlHttp=createXMLHttpRequest(); 
      23. xmlHttp.open("GET","weather/textGetHtml.php?city="+city,true); 
      24. xmlHttp.onreadystatechange=returnText
      25. xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
      26. xmlHttp.send(null); 
      27. function validataIpAdd() 
      28. function returnText() 
      29. var div=document.getElementById("result_box"); 
      30. var loading=document.getElementById("loading"); 
      31. div.innerHTML=""
      32. loading.style.display="block"
      33. if(xmlHttp.readyState==1) 
      34. else if(xmlHttp.readyState==4) 
      35. if(xmlHttp.status==200) 
      36. div.innerHTML=xmlHttp.responseText; 
      37. 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教程/更新時間:2012-06-10
      相關PHP教程